Javascript Java脚本:通过id设置对象的值,其中id是对象的最后一个字母
至于标题:看起来有点混乱,但事实并非如此 在React中,我正在进行代码的重用 我有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: {
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