Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Reactjs 如何将redux表单的formValueSelector方法与自定义组件一起使用以显示另一个组件_Reactjs_Redux_React Redux_Redux Form - Fatal编程技术网

Reactjs 如何将redux表单的formValueSelector方法与自定义组件一起使用以显示另一个组件

Reactjs 如何将redux表单的formValueSelector方法与自定义组件一起使用以显示另一个组件,reactjs,redux,react-redux,redux-form,Reactjs,Redux,React Redux,Redux Form,我尝试使用redux表单创建一个表单,当我单击custom按钮时,它会显示另一个输入 我已经找到了一个简单组件(输入,复选框)的示例,它可以工作,但是当我想对自定义组件使用相同的逻辑时,我的选择器是未定义的 <Field name="addNumberPhone" id="addNumberPhone" component={ renderButtonAddNumberPhone } label='Add new label'

我尝试使用redux表单创建一个表单,当我单击custom按钮时,它会显示另一个输入

我已经找到了一个简单组件(输入,复选框)的示例,它可以工作,但是当我想对自定义组件使用相同的逻辑时,我的选择器是未定义的

   <Field
       name="addNumberPhone"
       id="addNumberPhone"
       component={ renderButtonAddNumberPhone }
       label='Add new label'
       type="checkbox"
   />
   { addNumberPhoneValue &&
       <div>
          display something
       </div>
   }

最后,在详细阅读了redux表单的文档之后,我已经用tag和

解决了我的问题,您希望在
addNumberPhone
中有什么价值
renderButtonAddNumberPhone
组件只是一个按钮,它没有
onChange
事件和任何值..在
renderButtonAddNumberPhone
内的onClick函数中,它应该做什么?如果您获取输入值并希望更新redux表单中的值,则需要使用
input.onChange(newValue)
,因为通过更仔细地阅读我在fields数组中找到的响应我需要的redux表单文档。我添加了这些链接,这样与我相同的人就有问题了。不需要代码,因为文档的解释相当清楚。
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>
)
const selector = formValueSelector('initializeFromState');
SampleForm = connect(state => {
    const addNumberPhoneValue = selector(state , 'addNumberPhone');    
    return {
        addNumberPhoneValue ,
    }
})(SampleForm);