使用 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.email
是 errors
对象中的对象,即
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'
}
我尝试学习如何使用 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.email
是 errors
对象中的对象,即
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'
}