这里记录下子组件不刷新的原因有哪些:
1、父组件传递给子组件的props
的值没有改变
这是最常见的原因。
2、父组件的render
没有执行。
子组件刷新的前提是,父组件必须刷新,所以如果父组件没有刷新,则先检查为什么父组件没有刷新。
3、在父组件中,子组件用在FlatList
中
FlatList
的刷新机制是:默认情况下,如果data
的值地址不改变,即使data
中某个对象的某个属性值发生了改变,也不会触发FlatList的更新。所以需要设置extraData
。
比如data={userList}
,如果你想在userList
中某个item
的属性(假设为头像)发生改变时,FlatList的展示内容跟着变化。那应该这么设置<FlatList data={userList} extraData={userList} />
。
ps:extraData
设置多个值的方法:<FlatList extraData={[list1, list2, list3]} />
网友评论