我如何更新redux-form中的数组字段值?

ZPP*_*PPP 4 reactjs redux 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,
      });

    });

};
Run Code Online (Sandbox Code Playgroud)

这是我尝试的方法^不起作用,我不知道为什么

我用的是v6

我也试过插入

但是插入字段不会被删除 - 复制!虽然新字段的值发生了变化

bla*_*laz 8

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

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

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