我目前正在使用asyncvalidation来验证表单中的某些值。但是,在将字段传递给异步函数时遇到一些问题。
所以基本上我有两个要验证的URL:smallURL和largeURL。 我从json接收数据,该数据在对象中包含两个数据,这些对象称为同时包含smallURL和largeURL的值。我希望能够将分别命名为smallURL和largeURL的字段传递给我,以便进行验证。
我的表单组件如下:
const theForm = props => {
const { handleSubmit, submitting, onSubmit} = props;
return (
<form onSubmit={handleSubmit(onSubmit)}>
<fieldset disabled={submitting}>
<Field component={renderImgUrlInput} name="largeURL" label="Large URL" />
<Field component={renderImgUrlInput} name="smallURL" label="Small URL" />
....................
</fieldset>
</form>
)
}
export default reduxForm({
form: 'theForm',
asyncValidate,
asyncBlurFields: [ 'username', 'smallURL', 'largeURL' ]
})(CollectionForm);
我的异步验证功能如下:
export const asyncValidate = (values) => {
// values contain both values.smallURL and values.largeURL
//The fields (smallURL and largeURL in my component match this. How do I pass in the fields as well.)
return promise(url)
.then((val) => {
...
})
}
......