如何以 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)
以删除旧的主头像项目。
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)
以删除旧的主头像项目。