我正在使用一个Formik React Form和在schema上定义的Yup验证:
export const Contact = yup.object<IContact>().shape({
contactName: yup
.string()
.trim('The contact name cannot include leading and trailing spaces')
.strict(true)
.min(1, 'The contact name needs to be at least 1 char')
.max(512, 'The contact name cannot exceed 512 char')
.required('The contact Name is required'),
});
有没有一种方法可以让Yup在不显示消息的情况下修剪白色?所以在提交表单时自动修剪空白?
5条答案
按热度按时间nmpmafwu1#
有没有办法让Yup在不显示消息的情况下修剪白色
不是在一个单独的转换中。formik使用的yup转换只是为了验证。你可以在传递数据之前创建一个单独的转换,但是你自己只需要
valueToUse = userValue.trim()
就可以了。0sgqnhkj2#
您可以:
参考:https://github.com/jaredpalmer/formik/issues/473#issuecomment-499476056
cbjzeqam3#
我可以通过覆盖
formik
对象的onChange
方法来实现自动删除电子邮件字段中白色。这不是最好的解决方案,但它工作得很好,特别是在输入字段中不允许空格的地方。nnsrf1az4#
你可以监听
onBlur()
事件。然后修剪字符串以实际修复任何尾随或前导空格:此外,对Yup进行修剪以进行确认:
wmtdaxz35#
您还可以在运行中修剪输入的文本,以完全限制用户在末尾使用空格(示例使用react原生组件):