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

我也尝试过插入

但是使用插入字段不仅会被删除-已复制!
尽管新字段的值(value)发生了变化

最佳答案

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

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

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

10-05 20:31