我有2个字段和一个提交按钮。 2个字段由redux-form控制。在按下提交按钮之前,两个字段都需要填写,因此如果两个字段为空,我将使用原始的提交属性来禁用按钮。 问题是,如果我填充两个字段之一,则该按钮将变为启用状态,但是我希望在填充两个字段后都启用该按钮。 我在做什么错了?
<form onSubmit={handleSubmit(this.submit)}>
<div id="product-searchbar">
<Field
component="TextField"
type="text"
name="productId"
placeholder="Enter a name product..."
/>
</div>
<Field
component="Dropdown"
header="Choose a product"
name="type"
items={[
{ value: "product a", id: 1 },
{ value: "product b", id: 2 }
]}
/>
<button
type="submit"
disabled={pristine || submitting}
>
<SaveIcon />
</button>
</form>
let ComponentContainer= reduxForm({
form: "formProduct"
})(ComponentWrapped);
答案 0 :(得分:1)
pristine
表示“没有一个字段”的值属性与其初始属性不同”,因此一旦一个字段的值与您初始化的值不同,pristine
将被设置为{ {1}}。您可以使用此变量启用false
功能。
您要做的是使这两个字段为必填项。有两种方法可以做到: 您只需根据需要设置这两个字段,就像这样:
reset()
或者您遵循此Field-Level Validation Example并添加<Field
component="TextField"
type="text"
name="authId"
placeholder="Enter an auth-Id..."
required
/>
验证:
required