Javascript React:是否有方法引用同一组件中的另一个对象';谁的构造函数?
我有两个对象处于相同组件的此状态: 对象1是一组键:值对。Javascript React:是否有方法引用同一组件中的另一个对象';谁的构造函数?,javascript,reactjs,state,Javascript,Reactjs,State,我有两个对象处于相同组件的此状态: 对象1是一组键:值对。 对象2是一个对象数组。每个内部对象再次包含key:value对,但其中一对应该引用存储在第一个对象中的值: this.state = { Object 1: { key 1: 1, key 2: 2, key 3: 3 }, Object 2: [ { key 1: "..
对象2是一个对象数组。每个内部对象再次包含key:value对,但其中一对应该引用存储在第一个对象中的值:
this.state = {
Object 1: {
key 1: 1,
key 2: 2,
key 3: 3
},
Object 2: [
{
key 1: "...",
key 2: value of e.g. Object 1 - key 3
},
{
...
}
]
};
有没有办法从第二个对象直接引用第一个对象?我唯一想到的另一种方法是将第一个对象作为道具传递给另一个类,但这有点不切实际,因为这是理想情况下包含两个对象的顶级元素
我不想将所有值存储在同一个对象中,因为两个对象都在不同的元素中渲染。您可能需要尝试以下方法:
this.state={}
this.state.Object_1={
关键1:1,
关键2:2,
按键3:“就是这样”,
}
this.state.Object_2=[
{
键1:“…”,
key_2:this.state.Object_1.key_3,
},
{
},
];
console.log(this.state)代码>As状态应该是可预测和可序列化的IMHO是在运行时为对象添加水合物的更好解决方案:
this.state={
目标1:{
关键1:1,
关键2:2,
关键3:3
},
目标2:[
{
键1:“…”,
},
]
};
//水合物法
getObject2=()=>this.state.Object2.map(
obj=>({…obj,key2:this.state.Object1.key3})
)
log(getObject2());
//模拟设置状态()
this.state.Object1.key3=“测试”
log(getObject2())代码>可以,但这取决于对象1和对象2之间的关系,以确定最佳方式。所以我们需要一个具体的例子来了解在这种情况下什么是合适的。通常,我会使用对象1中的键作为对象2中键2的值。如果您使用对象1中某个键的值而不是键本身,那么对象1一开始可能就过时了。当您开始需要在应用程序中执行此类操作时,最好使用单独的库来管理应用程序状态(例如redux)。在这种情况下,您可以直接从全局状态中提取任意多个组件中的本地道具。Shilly:Object2数组中第一个对象的键2应该指向Object1的键3的值。我正计划这么做。理想情况下,我会通过REST和SpringMVC将它与Java后端连接起来,但到目前为止,我还没有成功实现这一点。为什么不使用局部变量(在构造函数中)来实现这两个功能呢?在你的问题中,我看不到任何东西可以解释为什么从对象2引用对象1是必要的。我们缺少什么上下文?我发现这个答案很有趣,它对我有效。这是我尝试的第一件事,我得到了错误:“TypeError:无法读取未定义的属性”…。“我再次尝试了一次,但没有成功,错误仍然是一样的。”。TypeError:无法读取未定义的属性“能力”