Javascript 将数组索引值更新为对象

Javascript 将数组索引值更新为对象,javascript,arrays,reactjs,react-router,Javascript,Arrays,Reactjs,React Router,我想用immutability helper插件更新数组中键的值 我的代码如下所示: class StorageForm extends Component { constructor(props) { super(props); this.state = { volumes: [{local: 'test', remote: 'test2'}], }; }; _handleLocalPathData(event, index) {

我想用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
    });
 };
}

但数量并不是最新的。我的错在哪里

使_handleLocalPathData返回tmpData,并在类内调用函数并使用此.setState({volumes:tmpData})。
为什么由于的上下文,此未引用StorageForm类使_handleLocalPathData返回tmpData,并在类内调用函数并使用此.setState({volumes:tmpData})。
为什么由于的上下文,此未引用StorageForm类您希望在
索引
位置设置数组中对象的
本地
属性:

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

您想在
索引
位置设置数组中对象的
本地
属性:

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

嗯,我已经试过了,但是对于[index],我使用了这个.state.volumes[index]。我以后再试试。嗯,我已经试过了,但是对于[index],我使用了这个.state.volumes[index]。我以后再试试。