如何将 redux-form 的方法 formValueSelector 与自定义组件一起使用来显示另一个组件
How to use the method formValueSelector of redux-form with a custom component to display an another component
我尝试使用 redux-form 创建一个表单,当我点击自定义按钮时显示另一个输入。
我发现带有简单组件(输入、复选框)的示例可以正常工作,但是当我想对自定义组件使用相同的逻辑时,我的选择器未定义。
<Field
name="addNumberPhone"
id="addNumberPhone"
component={ renderButtonAddNumberPhone }
label='Add new label'
type="checkbox"
/>
{ addNumberPhoneValue &&
<div>
display something
</div>
}
我的自定义组件渲染:
const renderButtonAddNumberPhone = ({ input , label , name , meta: { touched , error } }) => (
<button id='button-add-number-phone' className='button-add-number-phone' onClick={ (e) => {
e.preventDefault();
} }>
<p><Icon name="plus" size={ 10 } fill="blue"/> { label }
</p>
</button>
)
以及我对方法的配置 formValueSelector:
const selector = formValueSelector('initializeFromState');
SampleForm = connect(state => {
const addNumberPhoneValue = selector(state , 'addNumberPhone');
return {
addNumberPhoneValue ,
}
})(SampleForm);
最后,在仔细阅读 redux-form 的文档后,我使用 FieldArrays tag and formValueSelector()
解决了我的问题
我尝试使用 redux-form 创建一个表单,当我点击自定义按钮时显示另一个输入。
我发现带有简单组件(输入、复选框)的示例可以正常工作,但是当我想对自定义组件使用相同的逻辑时,我的选择器未定义。
<Field
name="addNumberPhone"
id="addNumberPhone"
component={ renderButtonAddNumberPhone }
label='Add new label'
type="checkbox"
/>
{ addNumberPhoneValue &&
<div>
display something
</div>
}
我的自定义组件渲染:
const renderButtonAddNumberPhone = ({ input , label , name , meta: { touched , error } }) => (
<button id='button-add-number-phone' className='button-add-number-phone' onClick={ (e) => {
e.preventDefault();
} }>
<p><Icon name="plus" size={ 10 } fill="blue"/> { label }
</p>
</button>
)
以及我对方法的配置 formValueSelector:
const selector = formValueSelector('initializeFromState');
SampleForm = connect(state => {
const addNumberPhoneValue = selector(state , 'addNumberPhone');
return {
addNumberPhoneValue ,
}
})(SampleForm);
最后,在仔细阅读 redux-form 的文档后,我使用 FieldArrays tag and formValueSelector()
解决了我的问题