redux-form fields参数为空

时间:2017-01-25 17:04:41

标签: javascript reactjs redux react-redux redux-form

我遇到了redux-form的一些问题,基本上handleSubmit传递给它收到的函数的参数是空的......

让我描述一下我的文件(为了简洁起见,我将使用一个要点):

  1. The stateless component
  2. The Container
  3. The reducer
  4. The renderLoginField
  5. 如果您可以在此行中看到:<form onSubmit={handleSubmit(this.onFormSubmit.bind(this))}>

    这个超简单的功能:

    onFormSubmit(fields) {
      console.log(fields);
    };
    

    字段为空,但form减速器处于活动状态,并且存在已注册的字段:

    enter image description here

    有什么想法吗?

1 个答案:

答案 0 :(得分:2)

你的renderLoginField函数,它呈现自定义字段组件(d'oh!)没有使用input道具。

以下是renderLoginField功能正确更改的代码:

const renderLoginField = ({icon, input, type, meta: { touched, error }}) => {
  let mailIcon = 'fa-envelope-o';
  let passIcon = 'fa-key';
  return (
    <div className='form-group input-group'>
      <span className='input-group-addon' id='email'>
        <i className={`fa ${icon === 'mail' ? mailIcon : passIcon}`} />
      </span>
      <input
        { ...input } // <-- missing in your code!!
        type={type}
        aria-describedby={type}
        name={input.name}
        placeholder={`Insert ${type}`}
        className='form-control'/>
    </div>
  );
};

如果您选中the docs for <Field> component,您会看到以下声明,其中说明了执行该操作的重要性:

  

输入道具

     

input键下的道具是将您的输入组件连接到Redux 的内容   并且意图被解构为您的<input/>组件