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

使用Formik和Yup时出现Uncaught TypeError错误该如何解决?

解决Formik中Uncaught TypeError: (intermediate value)(...) is not a function错误

错误原因

你的代码里validationSchema参数被错误地用对象包裹({formSchema}),Formik的useFormik钩子要求直接传入验证Schema对象,而非包含Schema的对象。这种写法会导致Formik无法正确初始化验证逻辑,进而抛出类型错误。

修正后的代码

const {values, handleChange, handleSubmit, errors} = useFormik({
    initialValues: {
      name: '',
      address: '',
      latitude: '',
      longitude: '',
      nit: '',
      category: '',
      email: '',
    },
    validationSchema: formSchema, // 直接传入formSchema,不要用对象包裹
    validateOnChange: false,
    onSubmit: (values) => console.log(values), // 显式接收values参数,避免作用域问题
  })

额外注意点

  • validateOnChange: false的配置是有效的,它会关闭输入变化时的自动验证,仅在提交时触发验证,符合需求。
  • 原代码中onSubmit的箭头函数未接收values参数,虽然部分场景下能通过闭包获取,但显式传入参数是更规范的写法,可避免潜在作用域问题。

内容的提问来源于stack exchange,提问作者Alexander Rincón S.

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.09 23:40:57