我正在研究反应 - 还原形式的例子:
http://redux-form.com/6.0.0-alpha.4/examples/simple/
以这种方式工作,如果用户填写至少一个输入,则submit button
正在启用。
我只是想知道,是否有任何方式启用按钮仅当所有输入都被填充?
我不会在这里粘贴整个代码,因为它首先是长时间,其次是实时预览示例。
谢谢!
答案 0 :(得分:1)
我认为没有相应的属性,例如pristine
或dirty
,但您可以使用表单缩减器。假设你正在使用redux form 6+这样的东西应该起作用:
connect((state) => {
return {
// assuming form is the reducer's name
myForm: state.form.myForm
}
})(
reduxForm({
form: 'myForm'
})(({ handleSubmit, myForm }) => {
// myForm.values contains all fields that have value.
// myForm.fields contains all fields
const len = (obj) => Object.keys(obj).length;
const allFilled = len(myForm.values) === len(myForm.fields);
console.log(allFilled);
return (
<form onSubmit={handleSubmit}>
<Field
name="text"
component="input"
/>
<Field
name="bar"
component="input"
/>
</form>
)
})
);
一点点解释,redux表单由redux支持,并在redux存储中保存有关表单的所有信息。然后,您可以使用标准connect
函数将该信息连接到任何组件。
在此示例中,我使用fields
和values
属性检查所有字段是否都有值。