Reactjs 给出React setState参数的变量值
我想在react中创建一个函数handleFalse(),这样它的工作方式如下:Reactjs 给出React setState参数的变量值,reactjs,setstate,Reactjs,Setstate,我想在react中创建一个函数handleFalse(),这样它的工作方式如下: state = { Java: false, Python: false } handleFalse(language) { this.setState({language}:true); } render() { return( <Modal onHide={this.handleFalse("show")}></Modal> ) } 状态={ 爪哇:错,
state = {
Java: false,
Python: false
}
handleFalse(language) {
this.setState({language}:true);
}
render() {
return(
<Modal onHide={this.handleFalse("show")}></Modal>
)
}
状态={
爪哇:错,
Python:false
}
handleFalse(语言){
this.setState({language}:true);
}
render(){
返回(
)
}
其中语言是Java或Python中的一种。您可以使用如下计算属性:
handleTrue(语言){
this.setState({[语言]:true});
}
您可以使用[]
使用变量引用对象属性
这在访问时也起作用:
This.state[语言]
您可以使用如下计算属性:
handleTrue(语言){
this.setState({[语言]:true});
}
您可以使用[]
使用变量引用对象属性
这在访问时也起作用:
This.state[language]
谢谢,但现在我收到一个错误,上面写着“错误:超过了最大更新深度。当组件在componentWillUpdate或componentDidUpdate内重复调用setState时,可能会发生这种情况。React限制嵌套更新的数量,以防止无限循环。”你知道为什么吗?这与这里的代码无关,很可能是由调用函数的位置引起的。你能展示一下你是如何调用它的吗?改为onHide={()=>this.handleFalse(“show”)}
。当前您在每次渲染时调用handleFalse
函数的方式,该函数设置状态,导致重新渲染,然后无限重复。onHide={()=>doSomething()}
正在分配onHide
函数onHide={doSomething()}
正在为onHide
返回的值赋值。谢谢,但是现在我得到一个错误“错误:超过最大更新深度。当组件在componentWillUpdate或componentDidUpdate内重复调用setState时,可能会发生这种情况。React限制嵌套更新的数量以防止无限循环。“你知道为什么吗?这与这里的代码无关,很可能是由调用函数的位置引起的。你能演示一下如何调用它吗?更改为onHide={()=>this.handleFalse(“show”)}
。当前您在每次渲染时调用handleFalse
函数的方式,该函数设置状态,导致重新渲染,然后无限重复。onHide={()=>doSomething()}
正在分配onHide
函数。onHide={doSomething()}
正在分配onHide
doSomething返回的值。