Vue出现Uncaught (in promise) TypeError: Object(...) is not a function的错误解决办法

首页 / BUG汇总 / 正文

好久没写人资项目了,都快忘完了,今天一写就报错,不过这个错误的原因都还算好找,其实根据英文翻译都知道对象不是一个方法,所以一调用就抱错了,仔细检查才发现这是我导出的时候用了对象导出,而不是直接导出函数。

0.png

解决办法以及其他可能导致这个错误的问题

这是一个低级错误,一般都是导出导出时不仔细造成的,解决办法: 仔细检查导入或导出时是否出错,一般都是导出时没去掉对象,按需导入时没加{}导致的。

1.png

关于export和export default

相同点: 都能导出常量、函数、文件、模块等,然后在导入时使用import接收以便其他文件调用。

不同点: export可以导出多个对象,即称为按需导出,export default只能导出一个对象,即导出全部。通过export方式导出时要加{},在导入的时候需要加{},export default不需要在导出和导入的时候加{}。

评论区
头像
    头像
    李大大
    2022年11月27日 20:03
    回复

    大佬很厉害呀。俺可以跟你学习前端嘛

      头像
      DianC
      2022年11月27日 20:54
      回复

      跟着我学容易走歪路

    头像
    橙梓
    2022年11月27日 10:58
    回复

    TypeScript 你值得拥有

      头像
      DianC
      2022年11月27日 11:01
      回复

      据说是快学到了,但现在还不懂这是什么,大概知道是个语法糖

        头像
        橙梓
        2022年11月27日 11:02
        回复

        其实是在JS的基础上加了一个类型,例如之前是 `let str = "123";` 现在是 `let str: string = "123"`,这样就保证不会把对象当成函数,并且IDE也有提示

          头像
          DianC
          2022年11月27日 11:05
          回复

          wq,那感觉难了好多,感谢指点

            头像
            橙梓
            2022年11月27日 11:07
            回复

            其实不难,反正最后编译完都是js,你硬给字符串类型赋值数字,最后也能运行;实在不行,全定义为any类型,就不会有任何限制了(回归js)