簡體   English   中英

如何在redux形式的基礎上改變一個字段的值?

[英]how to change one fields value based on the other in redux-form?

我了解在stackoverflow中幾乎沒有其他類似的問題,但是我一直在研究它們,但是沒有一個問題在幫助我的情況,或者至少沒有得到解決,所以這是我的情況:

我有一個組件(我們稱其為MainComponent ),內部有兩個輸入。 第一個輸入是一個checkbox ,第二個輸入是一個picker (是本機輸入)。 我想做的是,當我單擊一個checkbox ,相應的picker被禁用,但是我無法從redux-form狀態中刪除該選擇器的值(啟用時選擇了該選擇器)。 如果我選擇其他checkbox前一個確實會被禁用,但該值保持不變。

請注意,我正在根據對象數組從另一個組件多次渲染此MainComponent

MainFile.js

categories.map((categoryItem, index)=>
 items.map((item, index)=>
   <Fields names={[${categoryItem.label}, ${categoryItem.label}.${item.label}]}
           component={Inputs}    
))

Inputs.js

<CheckBox ...>
<Picker ...>

使用以下inputs: {value, onChange}正確設置了復選框和選擇器inputs: {value, onChange}等。

我試圖在這個inputs.js更改值,但是后來我意識到這是錯誤的,並且給了我一個錯誤,即我無法從渲染中更改某些內容。

我想要實現的是一種取消選中我還要更改選擇器值的方法( 應該從redux-form狀態中刪除選擇器數據 )。 我怎樣才能做到這一點? 幫助將不勝感激。

我從您的問題中了解到的是,您想要更新redux-form的字段。

redux-form具有change方法,可用於動態更新任何字段值。

import { reduxForm, change } from 'redux-form';

const mapDispatchToProps = { updateField: (field, data) => change( "YOUR_FORM_NAME", field, data ) }

這會有所幫助嗎?

如果要從redux狀態中刪除選擇器,則可以使用props UnregisterField

將其導入到您的文件中

import { unregisterField } from 'redux-form';

並在您的代碼中

 this.props.unregisterField(yourFormName, yourFieldName);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM