React中状态对象的自引用

时间:2018-01-02 11:57:04

标签: javascript reactjs

假设我的ReactJS应用程序中有以下代码。在我的构造函数中,我定义状态部分。如何解析状态对象中的result

constructor () {
   super();
   this.state = {
    a: 1,
    b: 2,
    result: this.state.a + this.state.b
   };
}

有一个类似的问题self reference in object literal declaration,但它适用于vanilla JavaScript。我如何在React中实现同样的目标。

2 个答案:

答案 0 :(得分:1)

我会做这样的事情:

constructor () {
   super();
   this.state = {
    a: 1,
    b: 2
   };
}

componentWillMount() {
   const { a, b } = this.state;
   this.setState({ result: a + b });
}

答案 1 :(得分:0)

你不能这样做。无论是否在反应环境中,JS都无法实现。但你能做的是:

var obj = {
  a: 1,
  b: 2,
  get result () { return this.a + this.b }
}

但是状态Object上有方法,所以找到另一种方法可能会更好,因为状态应该由反射中的“简单”JS对象表示。