为什么原始道具不会禁用两个Redux-Field的按钮

时间:2019-01-30 09:42:40

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

我有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);

1 个答案:

答案 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