[英]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.