卸载屏幕后重置状态-挂钩?

时间:2020-08-10 15:59:52

标签: javascript reactjs react-native

从API获取数据后,我将其设置为状态,并在Flatlist中呈现项目,

当我从中选择任何项目时,我会操纵数据并将新属性添加到名为“ toggle:true”的项目对象中

,当我从列表中选择任何项并基于__call__()添加边框时,效果很好 但是,当我返回上一个屏幕然后重新打开列表屏幕时,虽然可以在卸载屏幕时重置状态,但可以看到项目周围的边框

那我在这里怎么了?

代码段

数据

toggle

1 个答案:

答案 0 :(得分:1)

好吧,尝试了几次之后,我明白了

更改此

 const updated = data.map((item) => {

对此

 const updated = data.map((old) => {
      let item = {...old};

,请确保一切正常,并且我们没有破坏任何东西:),

在ItemSelected函数上,您正在传递整个员工列表,现在可以通过它,但是在更改列表中的一个项目而不“重新创建”时,对该项目的引用仍然是相同的,“因为它是一个对象”表示我们正在修改原始项目,并且由于这样做,该项目保留了其旧的引用,避免这种情况的最佳方法是重新创建对象, 希望这能给您一个想法。