Javascript Java脚本:通过id设置对象的值,其中id是对象的最后一个字母

Javascript Java脚本:通过id设置对象的值,其中id是对象的最后一个字母,javascript,arrays,reactjs,object,Javascript,Arrays,Reactjs,Object,至于标题:看起来有点混乱,但事实并非如此 在React中,我正在进行代码的重用 我有 state={ colorObj1: {r:'0',g:'0',b:'0',a:'1'}, colorObj2: {r:'0',g:'0',b:'0',a:'0'}, colorObj3: {r:'0',g:'0',b:'0',a:'1'}, colorObj4: {r:'0',g:'0',b:'0',a:'0'}, colorObj5: {

至于标题:看起来有点混乱,但事实并非如此

在React中,我正在进行代码的重用

我有

state={
       colorObj1: {r:'0',g:'0',b:'0',a:'1'},
       colorObj2: {r:'0',g:'0',b:'0',a:'0'},
       colorObj3: {r:'0',g:'0',b:'0',a:'1'},
       colorObj4: {r:'0',g:'0',b:'0',a:'0'},
       colorObj5: {r:'0',g:'0',b:'0',a:'1'}
      }
我想要此函数-->按对象Id,我想要设置特定对象的颜色

id值-->1,2,3,4,5

getSelectedColor=(color,id) => {
    this.setState({colorObj{`id`}: color})  //WRONG CODE
}
您应按如下方式使用:

this.setState({[`colorObj${id}`]: color})
试一试

class-MyClass{
构造函数(){
这个州={
colorObj1:{r:'0',g:'0',b:'0',a:'1'},
colorObj2:{r:'0',g:'0',b:'0',a:'0'},
colorObj3:{r:'0',g:'0',b:'0',a:'1'},
colorObj4:{r:'0',g:'0',b:'0',a:'0'},
colorObj5:{r:'0',g:'0',b:'0',a:'1'}
}
}
设置选定颜色(颜色、id){
状态['colorObj'+id]=color;
}
getSelectedColor(id){
返回此.state['colorObj'+id];
}
}
//试验
设c=newmyclass();
c、 setSelectedColor({r:'1',g:'1',b:'1',a:'1'},6)
console.log(c.getSelectedColor(6));

console.log(c.getSelectedColor(2))这不是问题。您希望将字符串与动态变量连接。您可以使用:'someBasicStr'+dynamicVar或与模板字符串(es6+):
someBasicStr${dynamicVar}
,任何变量都将位于${}内。

this.setState({['colorObj'+id]:color})
因此概念名称是动态变量:D