reactjs 在构造函数中,为什么不能用.state.stateName = xxx替换.state={}

rvpgvaaj  于 2023-01-25  发布在  React
关注(0)|答案(1)|浏览(97)

我正在处理官方文档中的FilterableProductTable示例。(https://reactjs.org/docs/thinking-in-react.html
我想知道为什么我的组件在设置如下状态时无法呈现:

constructor(props) {
    super(props);
    this.state.onlyStocked = false;
    this.state.filteredText = '';
  }

但在设置为以下内容时,它正在运行:

this.state = {
      onlyStocked : false,
      filteredText : '',
    }

这是一个异步问题吗?

smtd7mpg

smtd7mpg1#

this.state.onlyStocked = false;

这将起作用(在构造函数中,不是为了以后改变状态),但只有当this.state存在时才起作用,所以如果你想使用这种样式,你首先需要创建对象。

constructor(props) {
    super(props);
    this.state = {};
    this.state.onlyStocked = false;
    this.state.filteredText = '';
}

相关问题