Ошибки при отправке отключают валидаторы, использующие форму с избыточностью и реагируют на нативный
Используя форму Redux с React Native, я получаю неожиданное поведение, которое после того, как я отправляю и у меня есть ошибки валидации, функции валидатора больше не запускаются, что делает его так, что форма никогда не может быть действительной.
Моя форма выглядит следующим образом.
<View style={{ flex: 1, flexDirection: 'column' }}>
<CoachSubScreenHeader title={I18n.t('create_link')} closeFunction={() => this.props.navigation.goBack()} />
<ValidationErrorContainer show={this.props.submitFailed}>
<Field name="name" component={ ValidationError } />
<Field name="url" component={ ValidationError } />
</ValidationErrorContainer>
<ScrollView>
<Field name="name" component={this.renderNameInput} validate={required} />
<Field name="url" component={this.renderUrlInput} validate={urlFormat} />
<Field name="description" component={ this.renderDescription } />
<CreateFormButton onPress={handleSubmit((values) => this.submit(values))} />
</ScrollView>
</View>
Я украшаю свой взгляд этим
@reduxForm({ form: 'CreateLinkForm' })
Мои валидаторы выглядят так
export const required = value => value ? undefined : 'cant_be_blank';
export const urlFormat = (value) => {
console.log(value)
return (value != null && urlFormatRegExp.test(value)) ? undefined : 'invalid_format';
}
Поведение, которое я не буду использовать в моей форме, это показывать ошибки проверки, когда submitFailed prop имеет значение true. Но после этого удалите ошибки одну за другой, поскольку они исправлены, и, конечно, сможете снова их отправить.
Это ошибка или есть что-то, чего мне не хватает.