使用setState更改状态

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了使用setState更改状态相关的知识,希望对你有一定的参考价值。

我试图让setState没有运气。这是以下代码

class test extends React.Component {
  constructor(props) {
    super(props);

    this.state = {
      invalid: null,
    };
  }

  boolTest = () => {
    this.setState({ invalid: true });
  };

  // ...
}

这就是我在表单字段中调用函数的方式

invalid={this.boolTest}

这是错误输出

错误:属性“invalid”必须为true,false或null;得到“未定义”(未定义)

警告:只能更新已安装或安装的组件。这通常意味着您在已卸载的组件上调用了setState,replaceState或forceUpdate。这是一个无操作。

答案

boolTest是一个实际上不会返回您可以使用的值的函数。你真的想做:

invalid={this.state.invalid}

或者作为一个更清晰的例子:

const { invalid } = this.state;

return (
  <>
    <Button onClick={this.boolTest}
    <Component invalid={invalid} />
  </>
)

以上是关于使用setState更改状态的主要内容,如果未能解决你的问题,请参考以下文章