一个始终不理解的问题

#1

今天做react项目时碰到一个很奇怪的问题;使用一个方法;state上两个数组现叫它们a和b,调用一个方法,从state上取a,b(let {a,b} = this.state );然后对a进行一些操作,把操作后的a setstate给了b,最后发现a也改变了,,但是我没有给a setState

#2

js里除了基本类型都是地址传递,你对a进行操作然后setstate给b只是把地址传给了b,a实际上被修改了。正确做法应该是:deepClone一个a数组,然后对拷贝进行操作,然后赋值给b,这样就OK了。深度拷贝可以使用immutablejs或者lodash这些库。

#4

嗯嗯 晚上的时候也是看到一篇文章说到这个类似的问题 ,解释也是这样 ,想了想也是解释通了,谢谢!!!