从API获取数据后,我将其设置为状态,并在Flatlist中呈现项目,
当我从中选择任何项目时,我会操纵数据并将新属性添加到名为“ toggle:true”的项目对象中
,当我从列表中选择任何项并基于__call__()
添加边框时,效果很好
但是,当我返回上一个屏幕然后重新打开列表屏幕时,虽然可以在卸载屏幕时重置状态,但可以看到项目周围的边框
那我在这里怎么了?
代码段
数据
toggle
答案 0 :(得分:1)
好吧,尝试了几次之后,我明白了
更改此
const updated = data.map((item) => {
对此
const updated = data.map((old) => {
let item = {...old};
,请确保一切正常,并且我们没有破坏任何东西:),
在ItemSelected函数上,您正在传递整个员工列表,现在可以通过它,但是在更改列表中的一个项目而不“重新创建”时,对该项目的引用仍然是相同的,“因为它是一个对象”表示我们正在修改原始项目,并且由于这样做,该项目保留了其旧的引用,避免这种情况的最佳方法是重新创建对象, 希望这能给您一个想法。