我使用formik作为表单实现。当您在上面的行中添加数据时,我们需要追加一个新的字段行。在提交表单时,我们将得到yup验证错误,因为新添加的行不符合条件。请建议跳过新添加的行(最后一行)的验证的解决方案。
This is the validation schema
Yup.object().shape({
key1: Yup.object({
key2: Yup.object({
key3: Yup
.array()
.of(Yup.object().shape
我得到了一个与我的怀疑高度相关的简单例子,所以我用这个作为我的例子。在这个链接中,我们可以看到一个简单的Yup验证模式。因此,当我们在电子邮件字段中输入某些内容时,电子邮件验证中的控制台日志将被打印出来,这显然是很好的。但是,即使我们在name字段中键入某些内容,控制台也会被打印出来。
验证模式
const schema = yup.object({
name: yup.string().required(),
email: yup.string().test('is-jimmy', '${path} is not Jimmy', function (v
因此,每当我收到一个字符串时,我都想将它存储为一个数组。但到目前为止我还没有运气,我试着用演员和变形来做。我只需要弄清楚才能把事情搞清楚。
变换和投射是一样的吗?如何使用Yup将字符串转换为数组?
const schema = yup.object().shape({
types: yup
.array('type must be an array.')
.of(
yup
.string('the array must contains on
我想检查标题中的文本字段是否已被填充,我也希望将文本框的限制设置为300个字符。如果我独立地尝试这些条件中的任何一种,它们就会工作。然而,如果我同时尝试这两种方法,那么字符限制验证就会被执行,而不是另一种。
const validationSchema = Yup.object().shape({
title: Yup.string().required().label("Title"),
title: Yup.string().test('len', 'Title must be less than 300 characters
我使用yup根据模式验证我的输入。
name为空数组。在min函数中应该失败。但不管怎样,它继续测试函数。
如何防止这种情况发生?如果在min中失败了,它就不应该继续执行下一个函数。
有没有可能用yup做呢?
需要说明的是:它的名称是[],所以它在min函数中失败。为什么还要继续检查test函数?
import * as yup from "yup";
console.clear();
let schema = yup.object().shape({
name: yup.array().min(1).test('x', 'y', (v
我使用Yup对Formik进行验证模式。表单字段名包含句点(.)特别的角色。它需要包含这个特殊的字符,因为这个名称是由操作引用的。字段名类似于"traits.name.first“。我将验证模式定义为
yup.object().shape({
"traits.name.first": yup.string().required("Please enter the first name"))};
但这种验证是行不通的。这是支持和有效的Yup使用字段名作为"traits.name.first"?请让我知道如何使它工作。目前,此验证不起作用,而
所以我在使用yup进行条件验证时遇到了问题。基本上,我希望运输有必要的属性时,复选框未被切换。我正在使用yup的when特性,但是我不知道如何从那个shipping嵌套对象中引用sameShippingAsBilling布尔值。 当checkbox为false时,一切正常,显示错误...但是当复选框被选中时,我得到这个错误:"Cannot use 'in' operator to search for 'default' in undefined" 问题是is回调中的值是未定义的。是否有可能从这些嵌套对象访问when中的外部变量?有什么替代方法