React:有没有办法在相同组件的构造函数中引用另一个对象?

时间:2019-04-10 13:16:11

标签: javascript reactjs state

在同一组件的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
            },
            {
             ...
            }
        ]
    };

有没有一种方法可以直接从第二个对象引用第一个对象?我想到的另一种方法是将第一个对象作为道具传递给另一个类,但这有点不切实际,因为这是理想的同时包含两个对象的顶部元素。

我不想将所有值存储在同一个对象中,因为两个对象都呈现在不同的元素中。

2 个答案:

答案 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);