在Redux-Form上验证消失,因为触发了UNREGISTERED_FIELD / REGISTER_FIELD操作(两次)

时间:2017-12-28 15:33:22

标签: reactjs redux redux-form

我正在使用React 16,Redux-form 7 我有一个验证字段。当我更改值时,会触发UPDATE_SYNC_ERRORS并正确地将syncErrors添加到状态。然后自动触发两个系列的UNREGISTERED_FIELD / REGISTER_FIELD并消除syncErrors并且永远不会重新创建,即使该字段的值仍然不正确。

<Field
    name="afield"
    validate={[ required, number, minValue(100) ]}
    component={props => <AnInput options={options} {...props} />}
  />

    const AnInput = props => {
  const {
    options: { label, prompt, helpText },
    input,
    meta: { touched, dirty, error, warning }
  } = props;

  return (
    <div className="form-group">
      <label>
        {label}
      </label>
      <div >
        <input
          {...input}
        />
        {touched &&
          ((error && <span>{error}</span>) ||
            (warning && <span>{warning}</span>))}
      </div>
      {helpText && <FieldHelp title={label} helpText={helpText} />}
    </div>
  );
};

Actions triggered when field is changed

1 个答案:

答案 0 :(得分:0)

这是因为您正在验证中调用一个函数。 您应该使用这样的内容:

const min100 = minValue(100);

在这里https://github.com/erikras/redux-form/issues/3405