可以相对于同级对象定义对象的属性值吗?

时间:2019-01-19 14:32:51

标签: reactjs coding-style

例如:

state={ 
    viewIndex:0,
    travelerIndex: 100,
    viewValue: (this.stateviewIndex * this.state.travelerIndex)
  }

在这里我们可以看到viewValue是相对于viewIndex和travelerIndex定义的。对我来说似乎有些递归,我想知道这样做是否可以。

任何提示都会很棒, 谢谢

1 个答案:

答案 0 :(得分:2)

我将创建一个局部函数,该函数根据状态计算总价值,而不是在状态中添加一层复杂性。我在下面创建了一个示例。您可以使用返回值执行任何操作。

class App extends React.Component {
  state = {
    tomsWallet: 50,
    hannahsPurse: 49,
  }
  getTotalBalance = () => {
    return (this.state.tomsWallet + this.state.hannahsPurse).toFixed(2);
  }
  render() {
    return (
      <div>Total Balance: £{this.getTotalBalance()}</div>
    )
  }
}

ReactDOM.render(<App/>, document.getElementById('root'));
<script src="https://cdnjs.cloudflare.com/ajax/libs/react/16.6.3/umd/react.production.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/react-dom/16.6.3/umd/react-dom.production.min.js"></script>
<div id="root"></div>