我正在尝试使用React在紫色宫殿游戏中制作一个简单的游戏,例如紫色对。我有一个名为clickBtn
的方法,它应该增加点击计数并减少第二次点击,但是我不知道为什么handleClick
方法会改变chosen
和{{1 }}的state属性,即使不使用clicked
方法复制新状态也是如此。你能帮我解决这个问题吗?
setState
答案 0 :(得分:1)
slice()
只是返回数组的浅表副本,因此,如果原始对象和副本对象都是引用类型(对象),则原始对象和副本对象都引用相同的数组对象。
对于对象切片,将对象引用复制到新数组中。这俩 原数组和新数组引用相同的对象。如果对象发生变化, 这些更改对于新阵列和原始阵列都是可见的。
尝试深度复制对象。您可以使用JSON.parse(JSON.stringify(arr))
您还可以尝试lodash
的{{1}}方法。
有关深度克隆的更多详细信息-https://stackoverflow.com/a/122704/11306028