在状态定义中添加条件是一种好习惯吗?

时间:2018-08-22 20:49:27

标签: javascript reactjs

反应较新。我并不经常这样做。示例:

this.state = {
  varName: x.length != 0 ? 'Something' : null
}

2 个答案:

答案 0 :(得分:1)

通常,您将使用初始值在构造函数中定义初始状态,然后在组件生命周期中,可以将State设置为该条件。例子

constructor(props) {
        super(props);
        this.state = {
            varName:null
        };
 }

componentDidMount() {
       // perhaps here evaluate your x value and then set the state
        var x = something such as fetch or props passed
        this.setState({
          varName: x.length != 0 ? 'Something' : null
        })
}

答案 1 :(得分:0)

我不知道为什么这行不通,但是您必须注意x的定义位置。通常,当我从props,localstorage等中获取所需的信息时,只需将所有状态变量设置为null或默认值,然后在componentWillMount中更新它们即可。