2016-12-31 48 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, 
     }); 

    }); 

}; 

我這是怎麼試試^ 不工作,我不知道爲什麼如何以redux形式更新數組字段值?

我使用V6

我也試過插入

但隨着插入場不只刪除 - 複製! 儘管新字段的值已更改

回答

4

如果您只想更新數組avatars中的單個項目,則替代解決方案使用的是redux-form的Action Creators。只需要提供索引值動作:

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

您可以以同樣的方式創建另一個動作removeMain(k)刪除舊的主虛擬道具。

相關問題