用户在redux-form

时间:2017-07-13 22:17:00

标签: reactjs redux redux-form

我有以redux形式呈现的以下组件:

export const renderFormInput = ({
  input: { onChange, value },
  meta: { active, error, invalid, submitFailed },
  ...rest
}) =>
  <FormInput
    invalid={!active && invalid && submitFailed}
    errorMessage={!active && invalid && error}
    onChange={onChange}
    {...rest}
  />;

这一切都很好但我想要的是在用户再次尝试提交之前不显示任何错误消息。

我能想到这样做的唯一方法是将submitFailed设置为假。这有可能还是有更好的方法?

2 个答案:

答案 0 :(得分:2)

在没有周围环境的情况下给出完整答案有点困难。通常,最好的方法是使用一个变量来说明是否尝试过提交。例如,您可以使用fieldIsPristine并使用它来控制是否显示错误。然后,您可以在onSubmit函数中切换它。您也可以对submitFailed字段执行相同的操作。

如果你想避免在顶层处理那个变量,你可以只有一个中间函数来捕获提交并切换状态然后传递它,如果它有效。

答案 1 :(得分:1)

在此处查看讨论:https://github.com/erikras/redux-form/issues/2868

您可以通过submitFailed操作来重置stopSubmit