将字段错误提升为表单错误

时间:2017-02-09 19:32:10

标签: redux-form

redux-form版本:v6.2.0

我有一张信用卡信息表。 (号码,到期,cvc)。我没有足够的空间在每个字段上发生错误,因此我只需要1个表单级错误字段而不是许多字段级输入字段错误。

这对于表单级验证(添加_error: firstFieldLevelError)很容易,但除非触摸了该字段,否则我不想显示它(当然touched只是可用于该领域)。

所以,我采取了手动抓取状态:

const mapStateToProps = (state, props) => {
  const formState = state.form[props.form];
  if (formState) {
    const {syncErrors} = formState;
    if (syncErrors) {
      const firstErrorField = Object.keys(syncErrors)[0];
      const {touched} = formState.fields[firstErrorField] || {};
      if (touched) {
        return {
          syncFormError: syncErrors[firstErrorField]
        }
      }
    }
  }
  return {};
};

对于我想象的非常常见的东西,我觉得非常冗长。还有更好的方法吗?

0 个答案:

没有答案