Reactjs React:如何更新嵌套数据结构,而不必将所有与之相关的逻辑放在父组件中
我是个新手,这是我第一次处理嵌套对象。 这是我需要管理的州的一部分:Reactjs React:如何更新嵌套数据结构,而不必将所有与之相关的逻辑放在父组件中,reactjs,Reactjs,我是个新手,这是我第一次处理嵌套对象。 这是我需要管理的州的一部分: Model | |__ModelReturn:{ id: 1, name: "XYZ", modelId:1} | | |__ModelReturn:{ id: 2, name: "ABC", modelId:1} | | |__ModelReturn:{ id: 3, name: "PQR", modelId:1} 因为我不想指定我创建的每个对象的结构,所以我
Model
|
|__ModelReturn:{ id: 1, name: "XYZ", modelId:1}
|
|
|__ModelReturn:{ id: 2, name: "ABC", modelId:1}
|
|
|__ModelReturn:{ id: 3, name: "PQR", modelId:1}
因为我不想指定我创建的每个对象的结构,所以我在应用程序中使用的几乎每个对象都有一个类
例如,当我添加一个新的ModelReturn时,我可以简单地实例化一个新的ModelReturn对象,而不必指定我要创建的对象的结构:
this.setState(prevState => ({
modelReturns: [...prevState.modelReturns, new ModelReturnEntity()]
}));
到目前为止,拥有这样的类似乎是非常方便的,直到我不得不开始更新状态的小块,在本例中是ModelReturn
你看,因为我习惯于通过引用传递对象,所以我认为如果我将ModelReturn对象作为道具传递给ModelReturn组件,并将该对象分配给组件的状态,那么对该状态所做的所有更改都将反映在模型组件中的原始状态中
class ModelReturn extends Component {
constructor(props) {
super(props);
this.state = props.modelReturn;
}
//...
}
知道道具是只读值,我能想到的唯一解决方案是将更新某个对象的方法一直传递给负责渲染它的组件
有没有更好的方法将一段状态传递给一个组件,并且该组件所做的所有更改都反映在父组件持有的状态中,而不必将所有这些逻辑放在父组件中
我知道我可以使用Redux,但我正在努力避免它,至少现在是这样,直到我对just React更有信心
顺便说一句,以下是我试图构建的一个示例。与此问题相关的文件包括:
/组件/模型/模型.js
/组件/模型/ModelReturnList.js
/组件/模型/ModelReturn.js