据我对Java语言的正确理解,我们有两种不同的传递方式:按值传递和按引用传递。按值表示传递字符串或数字的时间。通过引用传递对象或数组时。
上次在某些项目中,我注意到反模式->有人为this.props.arrayOfNames = newArrayOfNames;
分配了新值
我没有机会测试它,但是...它会以某种方式改变父母的对象吗?通过引用?
答案 0 :(得分:5)
this.props.arrayOfNames = newArrayOfNames
不是反模式,而是错误。 props
对象是不可变的,这可以通过在开发模式下使用Object.freeze
来确保。 arrayOfNames
属性值的分配将导致错误。
如果道具与收到的道具不同,正确的方法是使用带有getDerivedStateFromProps
钩子的道具衍生的状态。