我使用this template安装了redux-form
,附加了reducer并检查它在redux devtools中运行正常。
我可以看到在键入时动作流程很好,但每次击键后表单值和输入都是空的。
控制台中没有错误,我找不到任何线索。
我遗漏了一些小东西,也许它是一个组件渲染,或者可能是关于反应版本......
我的包裹:
"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);
答案 0 :(得分:4)
对我来说,我并没有将缩减器命名为示例中的确切名称,不幸的是,这导致了这个难以调试的错误。
确保缩减器列为&#39; form:formReducer&#39;如示例所示。
答案 1 :(得分:1)
发现问题,如果有人来这里找到答案。
有一个黑客来解决它。 你可以在这里找到更多: https://github.com/mxstbr/react-boilerplate/issues/958