我知道stackoverflow中几乎没有其他类似的问题,但我一直在调查它们,没有人帮助我的方案,或者至少我没有得到它所以这是我的情况:
我有一个组件(让我们称之为MainComponent
)里面有两个输入。第一个输入是checkbox
,第二个输入是picker
(是本地输入)。我想要做的是当我点击一个checkbox
时相应的picker
被禁用但我无法从{{1}删除选择器的值(我在启用时选择它)状态。如果我选择其他redux-form
之前的一个会被禁用,但值仍然存在。
请注意,我基于某些对象数组从另一个组件多次渲染此checkbox
。
MainFile.js
MainComponent
Inputs.js
categories.map((categoryItem, index)=>
items.map((item, index)=>
<Fields names={[${categoryItem.label}, ${categoryItem.label}.${item.label}]}
component={Inputs}
))
使用<CheckBox ...>
<Picker ...>
等
我试图改变这个inputs: {value, onChange}
中的值,但后来我意识到这是错误的,它给了我错误,我无法从渲染中改变一些东西。
当我取消选中我想要更改选择器值的复选框时,我想要实现的是一种方式(选择器数据应该从redux-form状态中删除)。我怎样才能做到这一点?非常感谢帮助。
答案 0 :(得分:2)
无论我从您的问题中了解到什么,您都希望更新redux-form
中的字段。
redux-form
具有change
方法,可用于动态更新任何字段值。
import { reduxForm, change } from 'redux-form';
const mapDispatchToProps = {
updateField: (field, data) => change( "YOUR_FORM_NAME", field, data )
}
这会有帮助吗?
答案 1 :(得分:0)
如果要从redux状态中删除选择器,可以使用props UnregisterField
将其导入您的文件
import { unregisterField } from 'redux-form';
并在您的代码中
this.props.unregisterField(yourFormName, yourFieldName);