使用动态道具json对象更新状态

时间:2019-02-27 13:24:07

标签: javascript reactjs

我有一个组件,它从父组件接收props中的json对象,而填充json对象的API调用仅在父组件中进行。

我的问题是如何在子组件中定义状态以保存json对象prop的值。我将json对象作为状态存储在child中,因为它是子组件中的更新或取消更新情况,所以我基本上声明为-dataCopydataOriginal,并在取消更新时尝试更改{{1} }到dataCopy,并在更新保存操作时反转。

由于将props中的值复制为参考,而且由于json对象可能是动态的,因此我很困惑,因此如果我执行dataOriginal,则无法将内部数据定义为dataCopy.some1.some2 = something

2 个答案:

答案 0 :(得分:0)

我认为您正在寻找的是componentDidUpdate(),但在使用时要非常小心。

请阅读-> https://reactjs.org/docs/react-component.html#componentdidupdate

答案 1 :(得分:0)

在将动态道具对象设置为您的状态时,尝试使用传播运算符...object

this.setState({dataCopy:{...this.props.object}})

这可能很有帮助https://stackblitz.com/edit/react-eb6fpb