Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/spring-mvc/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Reactjs 给出React setState参数的变量值_Reactjs_Setstate - Fatal编程技术网

Reactjs 给出React setState参数的变量值

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> ) } 状态={ 爪哇:错,

我想在react中创建一个函数handleFalse(),这样它的工作方式如下:

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返回的值。