为什么 FlatList 在 React Native 中没有动态更新

2024-01-20

我对原生反应很陌生,我正在尝试动态更新列表。

下面是我的代码:

import React, { Component } from "react";
import { View, Text, StyleSheet, FlatList } from "react-native";
import { Tile, ListItem, List } from "react-native-elements";


export default class JoinSession extends Component {

    constructor() {
        super();

        this.state = {
            dataToRender: [{ "id": "0", "name": "name0", "des": "des0" }]
        }
    }

    componentDidMount() {   
        var counter = 0;
        const interval = setInterval(() => {
            try {
                var temp = {
                    "id": ++counter + "",
                    "name": "name" + counter,
                    "des": "des" + counter
                }

                let tempArray = this.state.dataToRender;
                tempArray.push(temp);

                this.setState({
                    dataToRender: tempArray
                });

                console.log(this.state.dataToRender);

                if(counter === 10) {
                    clearInterval(interval);
                }
            } catch (e) {
                console.log(e.message);
            }
        }, 2000);
    }

    renderList(item) {
        console.log(item);

        return (
            <ListItem
                roundAvatar
                title={item.name}
                subtitle={item.des}
            />
        );
    }

    render() {
        return (
            <View style={{ flex: 1, alignItems: "stretch", backgroundColor: "skyblue" }}>
                <List>

                    <FlatList
                        data={this.state.dataToRender}
                        renderItem={({ item }) => this.renderList(item)}
                        keyExtractor={item => item.id}
                    />
                </List>
            </View>
        );
    }
}

我只能获取我在构造函数中声明的第一个元素,但我在 serInterval 中附加的数据没有显示在页面上。

请帮我解决这个问题,或者如果有其他方法,请告诉我。

提前致谢。


您好,尝试查看一下可以在 FlatList 上使用的 extraData 参数:

通过传递extraData={this.state}对于 FlatList,我们确保 FlatList 本身会在 state.selected 更改时重新渲染。如果不设置此 prop,FlatList 将不知道它需要重新渲染任何项目,因为它也是一个 PureComponent,并且 prop 比较不会显示任何更改。

<FlatList
 ...
 extraData={this.state}
/>

有关 FlatList 文档的更多信息:https://facebook.github.io/react-native/docs/flatlist.html https://facebook.github.io/react-native/docs/flatlist.html

另外你不应该需要这个<List>从反应本机元素这里列表行为完全由您的 FlatList 处理。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

为什么 FlatList 在 React Native 中没有动态更新 的相关文章

  • Vue.JS 2.5.1:未捕获的语法错误:意外的令牌导出

    我试图使用 VueJS 和 Bootstrap Vue 制作一个单选按钮 但是当我制作它时发生了这种情况 我预计这是语法错误 就像它所说的那样 但我似乎找不到任何线索 所以我尝试复制粘贴代码 这是 test radio php 的完整代码
  • 使用 npm 作为构建工具连接文件

    我最近发现我可以使用 npm 作为任务运行程序 而不是 gulp 或 grunt 到目前为止 一切都很棒 lint stylus jade uglify watch 等 但串联部分 我似乎无法实现 gulp 是这样的 gulp task s
  • 缓存 firestore 中 get 的第一个实现

    我希望 firestore 每次都先从缓存中获取数据 根据 Firestore 文档 传递 缓存 或 服务器 选项必须启用相同的功能 下面的例子 db collection cities where capital true get cac
  • Google Charts(AreaChart)如何检测缩放变化

    我正在画一个面积图 在覆盖层上有一些标记 我正在使用explorer选项 仅限水平 以便用户放大和缩小 问题是我找不到一种方法来通知缩放更改 以便有机会更新制造商位置 有一个图表范围变化事件 但它不是由 AreaChart 触发的 我尝试检
  • 夜间值班。单击带有文本的元素

    我遇到问题 无法单击具有某些独特文本的网页元素 我有这样的结构 div class wg wagon type title Text div 我试试这个 click wg wagon type title contains Text 但我有
  • 如何在提交表单之前删除自动数字格式?

    我正在使用 jQuery 插件自动数字 http www decorplanit com plugin 但是当我提交表单时 我无法删除之前字段上的格式POST 我尝试使用 input autonumeric destroy 和其他方法 但它
  • 光滑的旋转木马不工作

    我一直在尝试简单地实现 Slick Carousel 的工作 我已按照 Git 页面上的说明进行操作 https github com kenwheeler slick https github com kenwheeler slick 这
  • 在 IE10 中禁用捏合放大

    在 IE10 触摸模式下 我希望仅使页面的特定部分可缩放 其余的不应该 我找到了这个 http msdn microsoft com en US library ie hh772044 aspx http msdn microsoft co
  • 改进 D3 序列旭日示例

    This D3示例作为我的出发点 http bl ocks org kerryrodden 7090426 http bl ocks org kerryrodden 7090426 我想更改提供图表的数据 并且我做了以下新示例 http j
  • 更新 Google 地图流量层而无需重新加载页面

    我的页面中嵌入了 Google 地图 我使用 initMap js 函数来初始化地图 function initMap var map new google maps Map document getElementById t map zo
  • 如何将函数传递给 JavaScript Web Worker

    我想通过一个 或多个 函数传递postMessage 给网络工作者 因为我无法引用常规文件 为了启动 Web Worker 我将一个对象 URL 从 Blob 创建 传递给Worker构造函数 然后我传递一条消息 但到目前为止还没有在消息中
  • 在 php、ajax 或 javascript 中加载进度?

    任何人都知道如何在系统仍在服务器端获取数据的同时在客户端显示加载进度以及完成的百分比 例如 当我在客户端按下 确定 按钮时 它会调用服务器端从数据库收集数据 整个过程可能需要2到3分钟 如何在客户端显示加载进度 大约加载完成了多少 我怎样才
  • 更改时触发跨度文本/html

    jQuery 或 JavaScript 中是否有任何事件在以下情况下触发span标签 text html 已更改 Code span class user location span user location change functio
  • 在 jQuery AJAX 成功中从 MySql 获取特定响应

    好吧 我有这个 ajax 代码 它将在 Success 块中返回 MySql 的结果 ajax type POST url index php success function data alert data My Query sql SE
  • 如何将当前元素传递给 Knockout.js 绑定中的 Javascript 函数?

    因此 我尝试根据是否选中子复选框 使用 Knockout js 将类添加到元素 为此 我试图通过this作为我的函数的参数 目前 我的精简 DOM 结构如下 tr td td tr
  • ReferenceError 和全局对象

    在浏览器中的 JavaScript 中window是全局对象 这意味着在全局范围内定义的每个变量都是window 那么为什么我会得到这个结果 console log window foo No error logs undefined co
  • 如何修复 getImageData() 错误画布已被跨源数据污染?

    我的代码在本地主机上运行得很好 但在网站上却不起作用 我从控制台收到此错误 对于这一行 getImageData x y 1 1 data Uncaught SecurityError Failed to execute getImageD
  • 父指令属性更改时子指令不会更新

    这是对这两个问题的后续 在父指令和子指令之间传递参数 https stackoverflow com questions 42814530 pass argument between parent and child directives
  • 如何从配置加载套接字 io 事件监听器? [复制]

    这个问题在这里已经有答案了 我有使用套接字io 的nodejs 应用程序 我将存储在 config routes js 中的所有事件侦听器 module exports routes auth login controller auth a
  • 使用 JQuery 预填充选择字段的下拉选项验证

    我有这个 JQuery 片段来防止选择已在另一个字段中选择的下拉选项 var coll select name service on change function coll each function var val this value

随机推荐

  • 如何显示eclipse项目类型

    在 Eclipse IDE 中 有图标显示项目类型 但我找不到文字描述 我希望右键单击 gt 属性来显示此信息 但根据此所有项目都是 项目 类型 即使它们是 java 项目或 Maven 项目等 有人知道吗 Thanks 根据 您不会在 E
  • 如何使用 TELETHON 按日期获取消息?

    如何获取今天发布的消息TELETHON 我正在使用下面的代码 date of post datetime datetime 2019 12 24 with TelegramClient name api id api hash as cli
  • 如何优化 R 中词干提取和拼写检查的性能?

    我有大约 1 400 万个文档 每个文档的平均字符数为 中位数 250 和平均值 470 我想在对它们进行分类之前执行拼写检查和词干提取 模拟文档 sentence lt We aree drivng as fast as we drove
  • WPF 4:DataGridColumnHeader 发生了什么?

    DataGridColumnHeader 发生了什么 看起来当 DataGrid 移至PresentationFramework 时它已被删除 DataGridColumnHeader http msdn microsoft com en
  • 汇编程序如何将 x86 指令助记符映射到二进制机器指令?

    我对编写 x86 汇编程序感兴趣 我想知道将 x86 汇编助记符指令 使用类似 Intel 的语法 映射到相应的二进制机器代码指令的好方法是什么 您想了解助记符到机器代码的物理映射吗 如果是这样 则第 2A 卷和第 2B 卷英特尔 IA32
  • 我可以将字符串映射到java中的方法吗?

    我正在用 Java 编写一个表达式计算器 我希望能够添加更多运算符 我目前只有 和 目前 我的代码如下所示 case return a b case return a b case return a b 这适用于我的代码 因为我只有几个运算
  • git 可以提交新的非空文件的“空版本”吗?

    git 可以提交某些文件的空版本吗 恰当的例子是 我需要首先添加新的 未跟踪的 非空文件并提交为empty文件 以便将其内容标记为新内容并进行审查 完整的 未跟踪的文件应not被添加到索引中 git diff应通过将文件与其提交的空版本进行
  • Facebook 页面默认登陆选项卡

    我有一个 Facebook 页面 我将默认登录页面设置为自定义选项卡 如果用户不喜欢该页面 这很有效 如果用户喜欢该页面 则登陆页面始终是墙 有什么方法可以确保您的自定义选项卡始终是登录页面 无论用户是否喜欢您的页面 Example htt
  • Jquery Select2 插件版本检查

    在我的项目中 我检查 Select2 插件是否以这种方式加载 if jQuery select2 但现在我将尝试验证加载了 Select2 插件的版本 3 5 X 或 4 X 我想也许你可以检查一下 4 X 版本中引入的选项 功能是否在 3
  • 从包内加载mathematica包

    我或多或少有以下设置 在 path to my packages我有两个包裹package1 m and package2 m 每个包的概要如下 BeginPackage package1 Unprotect Names package1
  • numpy.linalg.inv 如何计算正交矩阵的逆?

    我正在实施一个LinearTransformation类 继承自numpy matrix和用途numpy matrix I计算变换矩阵的逆 有谁知道 numpy 在尝试计算逆矩阵之前是否检查矩阵的正交性 我问这个问题是因为我的大多数矩阵 但
  • 使用 pandas df.plot 在子图上绘制多条线

    有没有一种方法可以在一个图上绘制多个数据框列 并为数据框绘制多个子图 例如 如果 df 有 12 个数据列 则在子图 1 上绘制第 1 3 列 子图 2 第 4 6 列等 我了解如何使用 df plot 为每一列创建一个子图 但不确定如何按
  • 在django中将图像和缩略图存储在s3上

    我正在尝试使用 django storages boto 和 sorl thumbnail 将图像缩略图存储在 s3 上 我可以使用它 但是即使图像很小 速度也很慢 我不介意当我保存表单并将图像上传到 s3 时速度很慢 但我希望它在那之后能
  • Spring JdbcTemplate 错误处理批量更新

    我正在尝试使用batchUpdate 更新表中的数千行 我的要求是 1 假设一个批次有1000条记录 235 号记录导致错误 如何找出导致错误的记录 2 假设记录 600 没有导致更新 原因可能是没有记录匹配 where 子句 如何找出未更
  • 为什么我的 bash 提示符没有更新?

    我是 git 新手 我正在尝试将当前 git 分支添加到我已经存在的提示中 其定义如下 RESET 017 NORMAL 033 0m RED 033 31 1m YELLOW 033 33 1m WHITE 033 37 1m SMILE
  • Android 如何设置 EditText 的最大“字数”限制

    如何在 Android 上设置最大字数限制EditText我知道如何设置字符限制 但我正在寻找字数限制 您需要添加一个TextChangedListener给你的EditText然后应用一个InputFilter请参阅以下代码 edDesc
  • 通过 Maven 配置文件具有多个入口点应用程序的 Spring Boot

    我正在尝试构建一个结构原型 其中多个 SpringBootApplications 通过它们的打包命名空间进行隔离 如下所示 在 Maven 中pom xml 为了构建 我依赖于配置文件 如下所示 并进行了描述here https docs
  • Scala 是否有类似于 Java Deque 或 Python deque 的 Double Side Queue?

    Scala 是否有类似于 Java Deque 或 Python deque 的 Double Side Queue 我在 Scala 2 12 API 中只看到堆栈和队列 但只想仔细检查一下 Scala 2 13 有ArrayDeque内
  • 是否可以使用java客户端使用InProcessChannel在同一进程中调用c++服务器?

    grpc java 和 grpc c 都支持进程内通道 如果 grpc 客户端和服务器在同一进程中 则使用该通道 所以我有一个问题 是否可以使用java客户端使用进程内通道在同一进程中调用c 服务器 不会 每种语言的进程内通道都是特定于语言
  • 为什么 FlatList 在 React Native 中没有动态更新

    我对原生反应很陌生 我正在尝试动态更新列表 下面是我的代码 import React Component from react import View Text StyleSheet FlatList from react native i