子组件接收父组件值,为什么子组件处理接收到的值父组件中也变化?

#1

请问一下,为什么我子组件中对props中的值进行处理,父组件中的值也会发生变化?
(原谅我画图难看)

#2

可以看下父子组件的代码嘛

#3

记住了,都是同一个引用。react不会给你深克隆的。

#4

我也觉得ta是父子用同一个引用 但是感觉直接操作props的值有点奇怪 ╮(╯▽╰)╭

#5

已经改过来了 我之前都是 const add = this.state.add的,现在是直接使用slice复制新的数组进行传递的

#6

当时做的时候没想到过会出现这个问题,所以父组件传值以后 子组件里面拿过来就直接用了
现在知道了 以后会先复制成新的在处理的

#7

其实一般是在子组件内部拿到之后复制再用,这样的话比如以后把子组件抽离出去作为单独组件使用的时候,其他使用方就不需要深复制一遍再传入了

#8

其实我复制了,但是我应该复制错了
当时写的是 const data = this.props.add,结果出问题了,现在就直接用加上slice了

#9

官网推荐的也是不直接修改数据,通过slice等复制,再替换。