2017-06-14 1 views
1

私は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

上記のコードはいつ呼び出されますか? 'this.getRandHealth'が正常性を更新するならば、他のパラメータをリストする必要はなく、単に変更するだけです。 – EatYaFood

答えて

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()であれば、あなたにもマップにそれを移動し、繰り返しを減らすことができますさらに。

+0

フォームを送信した後に生成された状態がリフレッシュされるようですが、これをご覧ください。 https://stackoverflow.com/questions/44545184/react-js-initial-state-generated-randomly-how-to-prevent-it-from-regenerate-e –

関連する問題