2017-05-09 50 views
0

我想用immutability-helper插件更新數組中某個鍵的值。將數組索引值更新爲對象

我的代碼看起來是這樣的:

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 
    }); 
}; 
} 

但體積而非更新的。我的錯誤在哪裏?

回答

2

你想在index位置設置在數組對象local屬性:

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

好,我想這已經但是[索引]我用this.state.volumes [索引]。我會稍後再嘗試。 – Evolutio

0

使_handleLocalPathData返回tmpData並在類內部調用函數並使用this.setState({volumes:tmpData})。 爲什麼因爲上下文不闖民宅到StorageForm類

相關問題