在同一组件的this.state中有2个对象:
对象1是一组键:值对。
对象2是对象的数组。每个内部对象再次包含一对key:value,但是其中一对应该引用存储在第一个对象中的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
},
{
...
}
]
};
有没有一种方法可以直接从第二个对象引用第一个对象?我想到的另一种方法是将第一个对象作为道具传递给另一个类,但这有点不切实际,因为这是理想的同时包含两个对象的顶部元素。
我不想将所有值存储在同一个对象中,因为两个对象都呈现在不同的元素中。
答案 0 :(得分:0)
因为状态应该是可预测的和可序列化的,恕我直言,IMHO是在运行时将对象水合的更好解决方案:
this.state = {
Object1: {
key1: 1,
key2: 2,
key3: 3
},
Object2: [
{
key1: "...",
},
]
};
// Hydrate method
getObject2 = () => this.state.Object2.map(
obj => ({...obj, key2: this.state.Object1.key3 })
)
console.log(getObject2());
// Simulating setState()
this.state.Object1.key3 = "Test"
console.log(getObject2());
答案 1 :(得分:-3)
您可能想尝试这样的事情:
this.state = {}
this.state.Object_1 = {
key_1: 1,
key_2: 2,
key_3: "this is it",
}
this.state.Object_2 = [
{
key_1: "...",
key_2: this.state.Object_1.key_3,
},
{
},
];
console.log(this.state);