2017-05-09 11 views
0

配列内のキーの値を不変型ヘルパーアドオンで更新したいとします。配列インデックス値をオブジェクトとして更新する

私のコードは次のようになります。

class StorageForm extends Component { 
    constructor(props) { 
    super(props); 

    this.state = { 
     volumes: [{local: 'test', remote: 'test2'}], 
    }; 
    }; 

    _handleLocalPathData(event, index) { 
    const path = event.target.value; 
    const data = this.state.volumes[index]; 
    data.local = path; 

    const tmpData = update(this.state.volumes[index], {$set: [data]}); 

    this.setState({ 
     volumes: tmpData 
    }); 
}; 
} 

が、ボリュームが更新さ1ではありません。私のミスはどこですか?

答えて

2

を参照のうえされていません。うまく

const newVolumes = update(this.state.volumes, { 
    [index]: { local: { $set: path }, 
}; 
this.setState({ volumes: newVolumes }); 
+0

、私は[すでにが、これを試してみましたindex]私はthis.state.volumes [index]を使用しました。私は後でそれを試してみる。 – Evolutio

0

_handleLocalPathDataがtmpDataを返し、クラス内で関数を呼び出し、this.setState({volumes:tmpData})を使用します。 なぜ理由の文脈のこのあなたはindex位置に配列内のオブジェクトのlocalプロパティを設定したいStorageFormクラスに

関連する問題