首页 > 解决方案 > 使用动态道具 json 对象更新状态

问题描述

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

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

我被卡住了,因为 props 中的值被复制为参考,而且因为 json 对象可能是动态dataCopy.some1.some2 = something的,所以如果我这样做,那么它不可能在内部状态中我将数据定义为dataCopy:{}, dataOriginal:{}.

标签: javascriptreactjs

解决方案


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

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


推荐阅读