我是React.js的新手,我正在设计一款小游戏。
当我设置life
值时,我想使用job
的值,我可以在React.js中执行此操作吗?
以下是我的代码的一部分:
this.setState({
players:[
{
id:uuid.v4(),
name: "A",
job: "Wizard",
life: this.getRandHealth("Wizard")
}, {
id:uuid.v4(),
name: "B",
job: "Witch",
life: this.getRandHealth("Witch")
}]});
我想直接访问job
而不是手动签名。我可以这样做吗?
答案 0 :(得分:0)
解决方案是在没有life
的情况下定义玩家列表,然后使用.map()
添加它:
var list = [{
id: uuid.v4(),
name: "A",
job: "Wizard",
}, {
id: uuid.v4(),
name: "B",
job: "Witch",
}];
this.setState({
players: list.map(function(obj) {
return {
id: obj.id,
name: obj.name,
job: obj.job,
life: this.getRandHealth(obj.job)
};
}, this);
});
如果ID始终为uuid.v4()
,那么您也可以将其移动到地图中,并进一步减少重复次数。