这里记录下子组件不刷新的原因有哪些:
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]} />











网友评论