Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/24.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sql-server-2005/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,如何创建一个函数来设置以状态名称和值作为参数的状态?_Reactjs_Ecmascript 6 - Fatal编程技术网

Reactjs 使用react,如何创建一个函数来设置以状态名称和值作为参数的状态?

Reactjs 使用react,如何创建一个函数来设置以状态名称和值作为参数的状态?,reactjs,ecmascript-6,Reactjs,Ecmascript 6,我有一个简单的应用程序,可以跟踪许多不同的州 我意识到我可以创建一个类似于 changeSomething = (nameOfState) => { this.setState({nameOfState}); } 我将为this.state.nameOfState提供一个可重用的函数。在这种情况下,我需要为许多状态设置一个可重用的函数。这是b/c最初,我只有3个状态,所以我不在乎。现在我将有大约10个setstate函数,所以复制和粘贴10次是没有意义的。我应该能够

我有一个简单的应用程序,可以跟踪许多不同的州

我意识到我可以创建一个类似于

   changeSomething = (nameOfState) => {
     this.setState({nameOfState});
   }

我将为this.state.nameOfState提供一个可重用的函数。在这种情况下,我需要为许多状态设置一个可重用的函数。这是b/c最初,我只有3个状态,所以我不在乎。现在我将有大约10个setstate函数,所以复制和粘贴10次是没有意义的。我应该能够创建一个可重用的函数,该函数将状态名称和值作为参数并进行设置。

您可以使用方括号来设置它们

然后,在将函数绑定到事件时,只需定义prop名称。例如:

<SomeComponent onChange={this.changeSomething.bind(null, 'propName')} />


下面是一个JSFIDLE示例:

您可以使用方括号来表示

然后,在将函数绑定到事件时,只需定义prop名称。例如:

<SomeComponent onChange={this.changeSomething.bind(null, 'propName')} />


下面是一个JSFIDLE示例:

您可以这样做:

changeSomething=(stateName,value)=>{
this.setState({[stateName]:value});

}
您可以执行以下操作:

changeSomething=(stateName,value)=>{
this.setState({[stateName]:value});

}
将参数作为对象发送,状态名称作为值的键

例如:


将参数作为对象发送,状态名称作为值的键

例如:

changeSomething({ yourStateName: yourValue }) // function called with parameters as object
changeSomething = (stateValue) => {
    this.setState ({ stateValue });
}