使用 Redux-form 验证字段

Validate a Field with Redux-form

我尝试学习如何使用 redux-form,但遇到了一些小问题。 例如,我有一个这样的 Field 组件:

<Field
  name='individual.email'
  id="email"
  component={ renderInput }
  placeholder='test'
/>

在 validate.js 我有类似的东西:

 if ( !values.individual.email ) {
            errors.individual.email = 'Required'
        }

但是我有错误:

TypeError: Cannot set property 'email' of undefined

如果我仅通过 'email' 更改我的 Field 名称,它就可以正常工作。当我的 Field 是 'individual.email' 时,知道我做错了什么吗?

errors.invididual.emailerrors 对象中的对象,即

errors = {
    individual: {
        email: 'Required'
    }
}

在您的 validate() 函数的顶部,您可能已经声明了 errors 对象,但它不知道其中的 individual 属性。这就是为什么该字段只有 email 有效 - 您已经定义了 errors 并将其上的 email 属性 设置为 required.

我不确定它是否有效,但您必须执行以下操作:

const errors = {
    individual: {}
};

然后你可以分配 errors.individual.email = 'Required'

更改名称字段,使其不使用点。使用它 individualEmail 将是标准的命名方式。你不应该使用 .在名字中

试试这个

 if ( values.individual && !values.individual.email ) {
            errors.individual.email = 'Required'
        }