瞎扯
为什么今天不写flutter呢,因为今天周日我还加班了.
写了一天react.实在没精力去研究flutter.
刚好,写react碰到点问题.记录下来
为什么不会刷新?
比如:
list.foreach(item=>{
item.name='123'
})
this.props.refresh(list)
refresh=(list)=>(dispatch)=>{
dispatch({
type:'refresh',
list,
})
}
以上代码纯手打,不是很全,大致就是这个意思了.
原因
为什么不刷新呢?
其实就是个很简单的问题.
内存地址
这个问题不管是java还是什么,都是很常见的.
因为我修改了list的数据.但是这个list还是原来的对象.
所以当我再通过redux去更新这个list的时候.
因为判断两个对象的地址为同一个.setState就会有问题.
按正常设计来说,这种情况当然不会去更新界面,重绘UI.因为你传入了重复的对象(即使list内的元素已经改变)
所以,哪怕redux的state的数据已经变了,却不会重绘界面.
解决办法也简单
创建一个新对象就行了,
list.foreach(item=>{
item.name='123'
})
const newList={
...list,
}
this.props.refresh(newList)
这样,就不会出现更新了state,界面却不更新的问题了.'
您的喜欢与回复是我最大的动力-_-
交流群:493180098