我使用的是旧版本(2.9)的React-Admin框架,在验证SimpleForm字段时遇到了麻烦。我意识到升级到新版本是必经之路,但那需要一段时间。我正在验证SimpleForm中的字段。
我的validatefunction
(下面)返回一个整数,0或更高。我希望验证通过当该值为0,但失败当值为>0. 目前,表单在所有情况下都无法进行验证。相反,我希望它只在返回值为>
0。是否有某种方法可以指定在下面的SimpleForm中使用validate
行上的某种表达式?
const MyComponent = ({ dispatch, dataProvider, ...props }) => {
return (
<React.Fragment>
<SimpleForm>
...
<ReferenceInput
source="somefield"
validate={[ required(), validatefunction ]}
>
<SelectInput optionText="name" />
</ReferenceInput>
...
</SimpleForm>
</React.Fragment>
)
}
一个更好的方法可能是让我的validatefunction
在验证通过时返回undefined
。但是由于这里范围之外的原因,我还没有使它工作。
如果有错误,您的validateFunction
应该返回一个字符串。
const validatefunction = (value) => {
const validatorValue = oldValidateFunction(value);
if (validatorValue > 0) {
return 'error this does not validate';
}
}
请参阅https://marmelab.com/react-admin/doc/2.9/CreateEdit.html#per-input-validation-custom-function-validator获取输入验证器的文档。