React-Admin 2.9版本SimpleForm字段验证问题求助
React-Admin 2.9 字段验证问题解决方案
你可以通过包装原验证函数的方式,在validate数组里实现需求——让validatefunction返回0时验证通过,返回值大于0时触发失败。
React-Admin 2.9的验证规则逻辑是:验证函数返回undefined则视为通过,返回任意非undefined值(通常是错误信息字符串)则视为失败。你的validatefunction返回的数字会被框架判定为非通过状态,所以需要一层转换:
修改ReferenceInput的validate配置如下:
<ReferenceInput source="somefield" validate={[ required(), (value, allValues) => { const validateResult = validatefunction(value, allValues); // 返回0时验证通过,返回>0时返回错误信息触发失败 return validateResult > 0 ? "输入不符合要求,请检查" : undefined; } ]} > <SelectInput optionText="name" /> </ReferenceInput>
如果需要根据返回的不同数值展示对应错误信息,也可以扩展逻辑:
(value, allValues) => { const validateResult = validatefunction(value, allValues); if (validateResult === 0) return undefined; if (validateResult === 1) return "请选择有效的选项"; if (validateResult === 2) return "该选项已被占用"; return "输入不满足要求"; }
内容的提问来源于stack exchange,提问作者Woodchuck
相关产品推荐
相关产品推荐

