2016-11-06 77 views
1

我使用this template安裝了redux-form,附加了reducer並檢查了它在redux devtools中運行正常。Redux:表單輸入字段保留空白

我可以在打字時看到動作流程很好,但每次擊鍵後窗體值和輸入都是空的。

在控制檯中沒有錯誤,我找不到任何線索。

我想的東西小,也許這是一個組件渲染或也許是對反應的版本...

我的包:

"react": "15.3.2", 
"redux-form": "^6.2.0", 

我的登錄表單:

import React from 'react'; 
import { Field, reduxForm } from 'redux-form/immutable'; 


const renderField = ({ input, label, type, meta: { touched, error } }) => { 
    console.log(input); 
    return (
    <div> 
     <label>{label}</label> 
     <div> 
     <input {...input} placeholder={label} type={type} /> 
     {touched && error && <span>{error}</span>} 
     </div> 
    </div> 
); 
}; 

class FormLogin extends React.Component { // eslint-disable-line react/prefer-stateless-function 
    static propTypes = { 
    handleSubmit: React.PropTypes.func 
    }; 
    render() { 
    const { error, handleSubmit } = this.props; 
    return (
     <div> 
     <input type="text" name="ah1" /> 
     <form onSubmit={handleSubmit}> 
      <input type="text" name="ah2" /> 
      <div> 
      <Field id="username" name="username" type="text" component={renderField} label="Username" /> 

      </div> 
      <div> 
      <Field id="password" name="password" type="text" component={renderField} label="Password" /> 
      </div> 
      {error && <strong>{error}</strong>} 
      <button type="submit">Submit</button> 
     </form> 
     </div> 
    ); 
    } 
} 

export default reduxForm({ 
    form: 'FormLogin' 
})(FormLogin); 

回答

1

發現問題,如果有人來這裏找到答案。

有一個修復它的黑客。 你可以找到更多在這裏: https://github.com/mxstbr/react-boilerplate/issues/958

+0

不再是黑客,redux-form似乎可以直接使用他們的不可變庫來處理react-boilerplate - http://redux-form.com/6.6.0/examples/immutable/ –

3

對於我來說,我沒有名字的減速從例子中,不幸的是導致這種難以調試錯誤的確切名稱。

確保減速器被列爲'form:formReducer',如示例所示。

+1

你是我的英雄! –