Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

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,
      });

    });

};

This is how I try^ Doesn't work, I don't know why

I use v6

I also tried insert

But with insert field not removed only - copied! Although the value of new fields changed

like image 499
ZPPP Avatar asked Dec 31 '16 06:12

ZPPP


1 Answers

if you only want to update a single item in array avatars, an alternative solution is using redux-form's Action Creators. Just need to provide the index value to action:

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

You can create another action removeMain(k) in the same manner to remove the old main avatar item.

like image 98
blaz Avatar answered Nov 15 '22 11:11

blaz