React项目导入yup报错:'required'未从'yup'导出问题求助
问题解决方法
- 错误原因:你使用的 yup v0.32 版本不存在顶层导出的
required接口,required是字符串、数字、对象等具体校验类型下的链式调用方法,不可直接从yup包导入。 - 第一步:修正导入语句
删掉错误的import { required } from 'yup'写法,使用正确的导入方式:
// 全量导入yup import * as yup from 'yup'; // 也可以按需导入需要的校验类型 import { object, string, number } from 'yup';
- 第二步:修正校验规则写法,
required作为链式方法调用,示例如下:
// 表单校验规则示例,可适配formik直接使用 const validationSchema = yup.object({ // 字符串类型字段,必填 username: yup.string().required('用户名不能为空'), // 数字类型字段,必填+最小值校验 age: yup.number().required('年龄不能为空').min(18, '年龄不能小于18岁'), // 字符串邮箱格式,必填 email: yup.string().email('邮箱格式错误').required('邮箱不能为空') });
- 可选优化:你的项目中同时安装了
react-yup和官方yup,二者功能重叠无需同时存在,建议卸载react-yup避免依赖冲突:
# npm npm uninstall react-yup # yarn yarn remove react-yup
- 若修改后仍报错,清理项目缓存后重启即可:
npm run start --reset-cache
内容的提问来源于stack exchange,提问作者afnan
相关产品推荐
相关产品推荐

