我是 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
而不是手动签名。我能做到吗?
一种解决方案是定义不带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()
那么您也可以将其移动到地图中并进一步减少重复。