Проверить поле с помощью Redux-формы
Я пытаюсь научиться работать с избыточной формой, и у меня есть небольшая проблема. Например, у меня есть такой компонент 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
Если я изменяю имя моего поля только на "электронную почту", это нормально работает. Есть идеи, что я делаю неправильно, если мое поле - "индивидуальный адрес электронной почты"?
3 ответа
Попробуй это
if ( values.individual && !values.individual.email ) {
errors.individual.email = 'Required'
}
Изменение поля имени, чтобы оно не использовало точку. Используй это individualEmail
был бы стандартный способ именования. Вы не должны использовать. В именах
errors.invididual.email
это объект внутри errors
объект, т.е.
errors = {
individual: {
email: 'Required'
}
}
В верхней части вашего validate()
функция, вы, вероятно, объявили errors
объект, но он не знает о individual
собственность на это. Вот почему поле только email
работает - вы определили errors
и устанавливаем email
собственность на это required
,
Я не уверен, что это работает, но вы должны сделать что-то вроде:
const errors = {
individual: {}
};
И тогда вы могли бы назначить errors.individual.email = 'Required'