17

我是 React 的新手,并且正在尝试使用 yup 进行验证。我目前收到以下错误:

TypeError:无法读取未定义的属性“对象”

使用此代码:

validationSchema: Yup.object().shape({
  firstName: Yup.string().required()
}),

我正在使用所有最新版本的 formik、react 和 yup。版本是

“是的”:“^0.25.1”“formik”:“^0.11.11”,“react”:“^16.4.0”,“react-dom”:“^16.4.0”,

有人可以帮我解决这个问题吗?

它在这里复制 https://codesandbox.io/s/lrowpj8pq7

谢谢!

4

4 回答 4

130

正确的答案不是降级,而是改变你导入它的方式。

尝试import * as Yup from 'yup'代替import Yup from 'yup'.

// wrong
import Yup from 'yup';

// correct
import * as Yup from 'yup';

这是您的示例:https ://codesandbox.io/s/xlnw2x0kk4 。

于 2018-06-13T07:46:31.493 回答
0

我遇到了同样的问题,然后我意识到我在代码中使用的是 yup 而不是 Yup。下面是代码示例,它工作得很好:)

import * as Yup from "yup";

const formSchema = Yup.object().shape({
  email: Yup.string().required().email(),
  password: Yup.string().required().min(6),
});
于 2021-06-02T20:19:15.020 回答
0

在我的情况下,我忘记了exportvalidationSchema ,并在其他文件中访问,function这导致undefinederros.userName

于 2021-09-20T10:31:16.837 回答
-11

如果您降级Yup0.24.1,它开始工作。

于 2018-06-09T12:47:21.973 回答