如何以 redux 形式更新数组字段值?

How I can update array field value in redux-form?

isMain = (v, k) => {

    let {avatars: {fields}, push} = this.props;

    fields.getAll().map((avatar, key) => {

      fields.remove(key);

      push('avatars', {
        deleteImage: avatar.deleteImage || false,
        uuid: avatar.uuid,
        fileName: avatar.fileName,
        url: avatar.url,
        setMain: key === k,
      });

    });

};

我就是这样尝试的^ 不行,不知道为什么

我使用 v6

我也试过插入

但是 insert 字段没有被删除 - 复制了! 虽然新字段的值发生了变化

如果您只想更新数组 avatars 中的单个项目,另一种解决方案是使用 redux-form 的 Action Creators。只需提供索引值即可:

import { change } from 'redux-form'
...
setMain: (k) => dispatch(change(`yourForm`, `avatars[${k}].setMain`, true))

您可以以相同的方式创建另一个操作 removeMain(k) 以删除旧的主头像项目。