Javascript 在状态定义中添加条件是否是一种良好的做法?

Javascript 在状态定义中添加条件是否是一种良好的做法?,javascript,reactjs,Javascript,Reactjs,相对较新的反应。我不经常看到这样做。例如: this.state = { varName: x.length != 0 ? 'Something' : null } 我不明白为什么这样做行不通,但您必须小心定义x的位置。通常,我只需将所有状态变量设置为null或默认值,然后在组件willmount中更新它们,当我从道具、本地存储等获取所需信息时,通常,您将使用初始值在构造函数中定义初始状态,然后在组件生命周期中,您可以将状态设置为该状态。范例 constructor(props) {

相对较新的反应。我不经常看到这样做。例如:

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

我不明白为什么这样做行不通,但您必须小心定义
x
的位置。通常,我只需将所有状态变量设置为null或默认值,然后在组件willmount中更新它们,当我从道具、本地存储等获取所需信息时,通常,您将使用初始值在构造函数中定义初始状态,然后在组件生命周期中,您可以将状态设置为该状态。范例

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
        })
}

是的,没问题。这不是关于React本身,而是关于一般设计实践什么是
x
?这是道具吗?是的在这种情况下x是道具谢谢。将其移动到componentWillMount,因为这不会强制重新渲染。@Christa太棒了!如果这对你有用,你会接受这个答案吗?