You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用Yup表单验证时遇Uncaught TypeError错误,求解决方案

解决Yup表单验证中的name is not a function错误

错误原因

你遇到的错误:

Uncaught TypeError: (0 , yup__WEBPACK_IMPORTED_MODULE_5__.string)(...).name is not a function

核心问题是:Yup的字符串校验规则里没有name()这个方法,你调用了一个不存在的API,导致抛出类型错误。

修正方案

方案1:用label()设置字段友好名称(推荐)

如果你想给字段设置一个友好的显示名称,用于在错误提示中替代字段名(比如把name换成“姓名”),可以使用Yup提供的label()方法:

import * as yup from "yup"

validationSchema: yup.object({
        name: yup.string()
            .label("姓名")
            .required("该字段不能为空")
            .minLength(3, "${label}长度不能少于3个字符") // 可通过${label}引用设置的名称
            .maxLength(20, "${label}长度不能超过20个字符"),
})

方案2:直接在校验规则中写明确提示

如果只是想提示用户输入有效名称,不需要单独设置字段名,直接把提示信息整合到对应校验规则里即可:

import * as yup from "yup"

validationSchema: yup.object({
        name: yup.string()
            .required("该字段不能为空")
            .minLength(3, "请输入有效的姓名,长度不能少于3个字符")
            .maxLength(20, "姓名长度不能超过20个字符"),
})

补充说明

Yup的字符串校验链支持的方法包括required()、minLength()、maxLength()、email()、matches()等,name()并非官方提供的API,你可能是混淆了其他表单验证库的用法。如果需要自定义校验逻辑,可以使用test()方法实现。

内容的提问来源于stack exchange,提问作者Anthony13th

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.16 22:37:07