使用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更改状态的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 getProps 和 setState 更改 Gatsby Link 文本
React拓展 - setState - 路由组件懒加载 - Hooks - Fragment - Context - PureComponent - 插槽 - 错误边界 - 组件通信方式总结(代码片