ReactNative FlatList state更新,视图不更新的问题
来源:互联网 发布:路由器匿名主机mac 编辑:程序博客网 时间:2024/06/08 10:52
官方文档给出
- 本组件继承自
PureComponent
而非通常的Component
,这意味着如果其props
在浅比较
中是相等的,则不会重新渲染。所以请先检查你的renderItem
函数所依赖的props
数据(包括data
属性以及可能用到的父组件的state),如果是一个引用类型(Object或者数组都是引用类型),则需要先修改其引用地址(比如先复制到一个新的Object或者数组中),然后再修改其值,否则界面很可能不会刷新。(译注:这一段不了解的朋友建议先学习下js中的基本类型和引用类型。)
React.PureComponent
实现了props
和state
进行浅比较的shouldComponentUpdate()
方法。 如果你确定想人肉处理这个浅比较
操作,你可以自己在这个函数中比较this.props
和nextProps
、this.state
和nextState
是否相同。相同返回false
,不同返回true
,那么React就会根据返回值来确认是否跳过本次DOM渲染。
所以,当state内存放的数据为数组时候,实质上是一个引用,就算是state内push了一个数据,这时候是不会触发更新的,
我这里这么解决的
let d = { nr:action.mes, type:"txt", who:1 }; list = []; list = list.concat(this.state.Data); list.push(d); this.state.Data = list;这样就可以触发更新啦!
还是要详细读一下文档哦~~~
阅读全文
1 0
- ReactNative FlatList state更新,视图不更新的问题
- 视图更新的问题
- 解决AngularJS中ng-repeat不更新视图的问题
- 关于视图的更新问题
- iOS视图更新问题
- ios8 UITableViewCell重用时自定义子视图不更新问题
- vue中对象属性改变视图不更新问题
- 更新所有的视图
- 视图更新的限制
- 更新视图的方法
- 视图的更新
- 更新LaunchImage时遇到不更新的问题
- reactnative 热更新记录
- rss不更新的问题测试
- css、图片等不更新的问题
- dbGridEh合计不更新的问题
- android应用桌面图标不更新的问题
- notifyDataSetChanged()数据不更新的问题
- Android自定义View——从零开始实现可展开收起的水平菜单栏
- Model和ModelAndView的区别
- 技术发展要广度还是深度?
- lwip 低级、连续、高级 socket编程介绍
- 下拉20刷新0xlistview分页加载
- ReactNative FlatList state更新,视图不更新的问题
- Spring Cloud 项目打印Sql日志
- 小程序都报wxss编译错误
- oracle的日期函数
- Spring Boot系列(七)Spring Boot使用Redis实现session共享
- Transp. Table EINA(Purchasing Info Reconrd: General Data)
- Nginx运维常用指令详解
- Ubuntu16.04LTS设置python3为默认版本
- openVPN23manpage