用 setState 改变状态
Posted
技术标签:
【中文标题】用 setState 改变状态【英文标题】:Changing state with 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。
【参考方案1】:
boolTest
是一个实际上不会返回您可以使用的值的函数。你实际上想这样做:
invalid=this.state.invalid
或者作为一个更清楚的例子:
const invalid = this.state;
return (
<>
<Button onClick=this.boolTest
<Component invalid=invalid />
</>
)
【讨论】:
以上是关于用 setState 改变状态的主要内容,如果未能解决你的问题,请参考以下文章
Flutter:状态类:为啥不在 setState 方法调用之前改变状态变量,而不是在 setState 方法中