通过将其作为变量名传递来动态设置状态对象:React
Dynamically setting state object by passing it as variable name : React
我有这样的场景,我需要发送状态对象变量列表,然后使用传递的变量在 setState 函数中动态设置它们。试图实现同样的目标。
我正在维护一个 setState 函数,我将向其传递状态变量,然后相应地设置这些变量。
我是不是走错地方了?
不胜感激。
相关片段已发布
constructor()
{
super(props);
this.state ={
val1 : '',
val2: '',
val3: '',
}
}
fetchValues = (stateVariable) =>{ // here the stateVariable ie val1,val2,val3 will be passed .
//fetching a value that will be set to the state object variables
this.set(stateVariable,value)
}
set = (val) => {
this.setState(`${val}`: val
}
你可以这样做:
const set = val => {
this.setState({ [val]: val });
};
此外,您还遇到了以下问题:
(val)
后没有=>
。
- 右大括号不正确。
- 您缺少
const
。
为您解决了所有问题。
为您快速演示。
var val = "Praveen";
console.log({ [val]: val });
我有这样的场景,我需要发送状态对象变量列表,然后使用传递的变量在 setState 函数中动态设置它们。试图实现同样的目标。 我正在维护一个 setState 函数,我将向其传递状态变量,然后相应地设置这些变量。
我是不是走错地方了?
不胜感激。
相关片段已发布
constructor()
{
super(props);
this.state ={
val1 : '',
val2: '',
val3: '',
}
}
fetchValues = (stateVariable) =>{ // here the stateVariable ie val1,val2,val3 will be passed .
//fetching a value that will be set to the state object variables
this.set(stateVariable,value)
}
set = (val) => {
this.setState(`${val}`: val
}
你可以这样做:
const set = val => {
this.setState({ [val]: val });
};
此外,您还遇到了以下问题:
(val)
后没有=>
。- 右大括号不正确。
- 您缺少
const
。
为您解决了所有问题。
为您快速演示。
var val = "Praveen";
console.log({ [val]: val });