我用Yup和Formik作为我的登记表。当使用Yup在我的密码上提供的trim方法时,没有出现错误消息,而所有其他验证方法都正常工作。
下面是我的Yup模式的密码部分:
password: Yup.string()
.required('Password is required)
.min(8, 'Password must be at least 8 characters long')
.max(18, 'Password cannot be longer than 18 characte
我使用formik作为表单实现。当您在上面的行中添加数据时,我们需要追加一个新的字段行。在提交表单时,我们将得到yup验证错误,因为新添加的行不符合条件。请建议跳过新添加的行(最后一行)的验证的解决方案。
This is the validation schema
Yup.object().shape({
key1: Yup.object({
key2: Yup.object({
key3: Yup
.array()
.of(Yup.object().shape
所以我在使用yup进行条件验证时遇到了问题。基本上,我希望运输有必要的属性时,复选框未被切换。我正在使用yup的when特性,但是我不知道如何从那个shipping嵌套对象中引用sameShippingAsBilling布尔值。 当checkbox为false时,一切正常,显示错误...但是当复选框被选中时,我得到这个错误:"Cannot use 'in' operator to search for 'default' in undefined" 问题是is回调中的值是未定义的。是否有可能从这些嵌套对象访问when中的外部变量?有什么替代方法
我正在尝试使用Formik和Yup实现登录功能。这是我当前的架构
let loginSchema = yup.object().shape({loginId:
yup
.string()
.email("That doesn't look like a valid email")
.required("This field is required."),password: yup.string().required("This field is required."),});
但我的loginId既可以是电话号码,也可以是电子
我有一个输入字段(类型文件),由于某种原因,即使不是必需的,也会进行验证。对于序列号,我有一个验证,它不是必需的,而且似乎工作正常,在提交空字段时没有错误。对于文件输入字段,我只希望输入字段在上传文件时验证。我做错了什么?,当我点击submit测试验证时,我得到了这个(见下图)。
这是我的密码:
const validationSchema = Yup.object({
title: Yup.string()
.required("Title is required")
.min(8, "Title must be at least 8
我们当前的项目结构包括一个使用Yup和TypeScript的表单验证。我们开始这样使用它:
// Used as a type in `useForm` from `react-hook-form`
export type MySlideSchemaType = {
questionField: string
}
// Used with `useForm` as a `resolver`
export const mySlideSchema: yup.SchemaOf<MySlideSchemaType> =
yup.object({
questionField
如何实现像1字段的值这样的条件应该总是大于另一个字段的值。
这是我的模式
value: Yup.number().required(''),
value2: Yup.number().when('value',{
is: (val) => something here
then: Yup.number().required('Required').positive('value should be positive'),
otherwise: Yup.number()
})
我想检查
如何创建一个验证器,该验证器满足以下所有非排他性要求,并为每个需求显示不同的错误消息?我有一个Formik表单字段来查询电话号码。验证要求是
无字母字符(ASCII字母表: and )无周期符号无符号(非句号-例如±、$、%、^等)仅为数字、空格和
使用以下命令轻松地使用catch:/^[\s\d\)\(\-]+$/处理该需求:
phoneNo: yup
.string()
.min(6, 'Phone must be at least 6 characters')
.max(35, 'Phone number must be at most 35 characters
我在我的React Native应用程序中使用Formik。在登录表单上,我有两个字段:电子邮件和密码,这两个字段都是必填项。
我写了这样的验证规则:
export const LoginSchema = Yup.object().shape({
email: Yup.string()
.email('The email is invalid')
.required('This field is required'),
password: Yup.string()
.min(6, 'The password is too
我得到了一个与我的怀疑高度相关的简单例子,所以我用这个作为我的例子。在这个链接中,我们可以看到一个简单的Yup验证模式。因此,当我们在电子邮件字段中输入某些内容时,电子邮件验证中的控制台日志将被打印出来,这显然是很好的。但是,即使我们在name字段中键入某些内容,控制台也会被打印出来。
验证模式
const schema = yup.object({
name: yup.string().required(),
email: yup.string().test('is-jimmy', '${path} is not Jimmy', function (v