2016-12-31 5 views
2
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, 
     }); 

    }); 

}; 

これは私がしようとする方法である^私はV6redux-formで配列フィールドの値を更新する方法は? が動作しない

を使用する理由

、私は知らない私はまた、挿入

を試みたが、フィールドを挿入します削除されていない - コピー! 配列avatarsの単一項目のみを更新する場合は、新しいフィールドの値が変更されましたが、代替の解決策はredux-formのAction Creatorsを使用しています。

答えて

4

ただ、アクションにインデックス値を提供する必要があります。

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

あなたは古いメインのアバターアイテムを削除するには、同じ方法で別のアクションremoveMain(k)を作成することができます。