我想在输入字段中添加验证。我正在使用react hook表单。验证应该像字段的总和应该是100。如果任何字段使总和大于或小于100,它应该在输入字段(最后编辑的字段)显示错误。
沙箱URL:https://codesandbox.io/s/distracted-elion-z2wob?file=/src/App.js
感谢🙏
我想在输入字段中添加验证。我正在使用react hook表单。验证应该像字段的总和应该是100。如果任何字段使总和大于或小于100,它应该在输入字段(最后编辑的字段)显示错误。
沙箱URL:https://codesandbox.io/s/distracted-elion-z2wob?file=/src/App.js
感谢🙏
4条答案
按热度按时间50few1ms1#
为什么 不 使用 范围 ? 您 可以 将 最 小 值 设置 为 0 , 最 大 值 设置 为 100 - 当前 值 , 这 将 防止 用户 设置 任何 大于 100 的 值 。 对于 小于 100 的 值 , 您 可以 手动 检查 。
中 的 每 一 个
byqmnocz2#
这个handleSubmit函数将获取所有字段、值,然后将它们相加并提供总数。2你可以在if-else语句中处理错误。
sandbox
react-use-form error handling〈-这里有错误处理代码和示例。
42fyovps3#
您 只 需要 使用 Yup 的
test()
方法 来 验证 总数 :中 的 每 一 个
如果 验证 失败 ,
errors
对象 将 如下 所 示 :格式
然后 , 您 可以 使用
{ errors.questions?.message }
显示 错误 。vvppvyoh4#
react-hook-form v7.34.0中最近有一个新特性,它提供了这种开箱即用的验证...
您可以在定义字段数组时对其进行设置
在您的情况下,可以在自定义验证函数中运行字段总和== 100的检查
然后检查/使用错误本身
请参阅此处了解更多详细信息...
https://react-hook-form.com/api/usefieldarray/
https://github.com/react-hook-form/react-hook-form/issues/6879
https://github.com/react-hook-form/react-hook-form/pull/8562