我需要在redux-form字段上进行同步字段验证。它的一个参数(最小值)在redux商店中。
如何将param传递给字段验证器功能?甚至是表格的同步验证器功能。
据我了解,我有两种设置字段验证的选项:
如果我使用此路线,如何从验证功能访问表格道具? 即使我将validate函数绑定到表单,它也看不到表单的道具。
App = reduxForm({
form: "MyForm",
validate: validate.bind(App)
})(App);
我无法将MyForm.Validate函数传递给reduxForm。
这条路线我会将道具作为参数传递给验证功能。
IE浏览器。 <Field validate={minValue(this.props.minValue)} />
But in this comment据说这不是一个好方法,因为它在每个表单渲染上创建一个新函数。实际上它无法正常工作 - 在其他字段的验证错误发生之前不会进行验证。
答案 0 :(得分:0)
我找到了解决方法。
const Validations = {
minAmount: minValue => value => {
return parseFloat(value) < minValue
? "Amount must be at least " + minValue
: undefined;
}
};
组件构造函数中的:
constructor(props) {
super(props);
this.minAmount = Validations.minAmount(
this.props.minAmount
); // this a a workaround for validations with parameters causing issues , see https://github.com/erikras/redux-form/issues/2453#issuecomment-272483784
}
然后在Field:
<Field
validate={this.minAmount}
....