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

时间:2018-06-08 05:20:52

标签: reactjs formik yup

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

  

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

使用此代码:

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

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

版本
  

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

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

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

谢谢!

3 个答案:

答案 0 :(得分:75)

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

尝试使用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

答案 1 :(得分:0)

我遇到了同样的问题,然后我意识到我在代码中使用的是 yup 而不是 Yup。下面是代码示例,它完美运行:)

import * as Yup from "yup";

const formSchema = Yup.object().shape({
  email: Yup.string().required().email(),
  password: Yup.string().required().min(6),
});

答案 2 :(得分:-1)

这是一个Yup错误。如果您将其降级为0.24.1,它就会开始工作。