使用setState

时间:2019-02-26 00:30:19

标签: reactjs

我试图让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;否则为false。得到“未定义”   (未定义)

     

警告:只能更新已安装或正在安装的组件。这通常   表示您在某个位置调用了setState,replaceState或forceUpdate   未安装的组件。这是无人操作。

1 个答案:

答案 0 :(得分:2)

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

invalid={this.state.invalid}

或更清楚的例子:

const { invalid } = this.state;

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