我有一个Redux-form的随机组件,例如:
{code...}
<form>
<Field
component={TextField}
name="firstName"
/>
</form>
export default connect(mapStateToProps)(reduxForm({
form: 'myForm',
validate,
})(injectIntl(myForm)));
和validate.js
文件:
{code...}
const firstName = trim(values.get('firstName'));
if (!(firstName)) {
errors.firstName = 'Required';
}
我能够修改错误消息,它可以是必需,或者我想要的任何其他内容。
但我的问题是:我能否更改错误,甚至可以添加新的条件,但在<{strong> validate.js
文件之外?例如,在组件内部。所以我可以将必需名称更改为另一个名称而不修改validate.js
文件?
谢谢!
编辑:如何引用包含表单的组件中的指定字段?
有没有办法在全球范围内修复它?简单的例子:
globalComponent.js
{
form: 'myForm',
error: {
field: 'firstName',
errorMsg: 'Use a capital letter!',
},
}
答案 0 :(得分:0)
您可以使用单独的对象来定义验证消息:
export const validationMessages = {
required: 'Field is required'
}
// ...code
errors.firstName = validationMessages.required
然后,如果您需要更改所需的消息,只需设置validationMessages.required,如下所示:
validationMessages.required = 'First name is required'
但是,使用验证消息改变对象不是一个好的解决方案。我强烈建议您使用名为redux-form-validators的模块。
使用此模块,您可以轻松覆盖验证消息:
import { required, email } from 'redux-form-validators'
<Field
...
validate={required()} // Will use the default required message
>
<Field
...
validate={required({ message: 'Hey, the first name is required!' })} // Will override the default message
/>