【问题标题】:How I can update array field value in redux-form?如何更新 redux-form 中的数组字段值?
【发布时间】:2016-12-31 06:42:43
【问题描述】:
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 字段不仅没有被删除 - 被复制了! 虽然新字段的值发生了变化

【问题讨论】:

    标签: reactjs redux redux-form


    【解决方案1】:

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

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

    你可以用同样的方式创建另一个动作removeMain(k)来移除旧的主头像项。

    【讨论】:

    • 我无法导入change 函数,而我可以很好地导入其他函数(Field, Fields, formValueSelector)。它显示此错误:Module not found: Error: Can't resolve 'redux-form/es/change'
    猜你喜欢
    • 1970-01-01
    • 2018-05-03
    • 2018-02-09
    • 2023-03-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-08-31
    相关资源
    最近更新 更多