【问题标题】:Changing state with setState用 setState 改变状态
【发布时间】:2019-07-19 11:34:48
【问题描述】:

我试图让 setState 工作但没有运气。这是下面的代码

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

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

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

  // ...
}

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

invalid={this.boolTest}

这是错误输出

错误:属性“无效”必须为真、假或空;得到“未定义” (未定义)

警告:只能更新已安装或已安装的组件。这通常 表示您在一个 未安装的组件。这是无操作的。

【问题讨论】:

  • 您将boolTest 函数赋予invalid 属性。这真的是你想要的吗?也许你应该把它交给 onChange 道具或类似的东西,只是为了实验。
  • 我相信是的。 “无效”是我正在使用的表单组件的属性。我将尝试 onChange。

标签: reactjs


【解决方案1】:

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

invalid={this.state.invalid}

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

const { invalid } = this.state;

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-07-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-11-19
    • 2017-11-18
    相关资源
    最近更新 更多