uniapp 组件引用 TypeError: this.$refs.xxx is not a function 解决方法(全)

这篇具有很好参考价值的文章主要介绍了uniapp 组件引用 TypeError: this.$refs.xxx is not a function 解决方法(全)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

因为自己的项目中,某些常用模块自己定义了组件,使用时 常出现

TypeError: this.$refs.xxx is not a function (即没有xxx这个方法),结合网友和自身遇到的问题,得出三种方法

第一种:引用注册  即 在页面中 import 组件。 

import upimg from "../../components/store/user_photo.vue"; 

或者

import upimg from "@/components/store/user_photo.vue";

这两种方法都可以在页面中引入注册组件

解决方法:查看是否组件引用正确。

第二种:组件在循环里 

<view v-for="(item,index) in list">
    <component-father ref="outsideComponentRef">
    </component-father>
    <text>组件在循环了引用</text>
</view >

  解决方法:需加上下标 如: this.$refs[xxx][0] 

然而我的错的报错不是上面两种情况里所以还有第三种方法(至于其他的情况,目前还未发现,欢迎大家指正,添加)

我的报错原因时 组件命名错误!开始以为组件可以随意命名。看了官方文档,组件有命名格式的:

① 下划线  例如 kebab-case

当使用 kebab-case (短横线分隔命名) 定义一个组件时,你也必须在引用这个自定义元素时使用 kebab-case,例如 <my-component-name>。


② 首字母大写命名 即: PascalCase

当使用 PascalCase (首字母大写命名) 定义一个组件时,你在引用这个自定义元素时两种命名法都可以使用。 也就是说 <my-component-name> 和 <MyComponentName> 都是可接受的。

 希望能帮到大家!文章来源地址https://www.toymoban.com/news/detail-666640.html

到了这里,关于uniapp 组件引用 TypeError: this.$refs.xxx is not a function 解决方法(全)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 微信小程序错误-TypeError: this.setData is not a function

    微信小程序在与后台获取数据的时候遇到: TypeError: this.setData is not a function错误。 产生原因: 输出结果能输出,会产生警告,原因是this不能直接在请求的回调函数里写this, 解决方法:     在请求外声明一个变量,接收onload函数的this。  

    2024年02月16日
    浏览(44)
  • ESLint: TypeError: this.libOptions.parse is not a function - Webstorm

    ESLint 在 Webstorm 中出现 TypeError: this.libOptions.parse is not a function 错误的原因及修复办法。 如果你正在使用 ESLint 8.23.x 和 WebStorm 2022.2.x 或 PhpStorm 2022.2.x。 那么你可能会遇到 TypeError: this.libOptions.parse is not a function 。 这是 ESLint 8.23.x 中的一个bug。ESLint 团队正在努力解决这个问题,

    2024年02月04日
    浏览(46)
  • Syntax Error: TypeError: this.getOptions is not a function的解决(Vue)

    报错信息: TypeError: this.getOptions is not a function 这个是在运行项目是遇到的问题 这个报错是类型错误,this.getOptions 不是一个函数 。这个错误一般就是less-loader库里的错误。 主要是less-loader版本太高,不兼容this.getOptions方法。 解决方案: 找到package.json文件中的“less”和“les

    2024年02月12日
    浏览(52)
  • 小程序弹窗报错this.$refs.popup.open is not a function

    代码 报错信息 解决方法 this.$refs.popup[0].open()

    2024年02月05日
    浏览(44)
  • Error in beforeDestroy hook: “TypeError: this.myChart.clear is not a function“

    报错原因: 将 this.myChart.clear()改放到

    2024年02月16日
    浏览(45)
  • vue3+vite项目,安装依赖运行报错“failed to load config from xxx,TypeError: vite.createFilter is not a function”

        今天从GitHub上拉下来了一个 vue3+vite 项目,之前就是安装依赖就可以运行了,但是今天一直报错,显示 TypeError: vite.createFilter is not a function     vite版本与安装的依赖版本不匹配     近期vite3发布,但我们使用的还是v2,所以安装依赖的时候默认安装的是最新版本,这

    2024年02月21日
    浏览(57)
  • TypeError: defineConfig is not a function

    场景:当我们在做打包配置的时候,出现如下错误 原因:由于用vue-cli直接创建了vue 3的项目,而里面的生态并非都是最新版,vue.config.js中的代码如下,使用了vue 3的语法:    解决:输入  vue upgrade, 一路向下,即可解决

    2024年02月12日
    浏览(44)
  • TypeError: loaderUtils.getOptions is not a function

    webpack 版本: ^5.89.0 但是直接 pnpm add loader-utils 安装的版本比较新,会报错: TypeError: loaderUtils.getOptions is not a function 。 解决方案:将低 loader-utils 版本,我这里使用 ^2.0.0 就不会再报这个错误了 思路:直接去 github 里面搜索 loaderUtils.getOptions 看看别人的版本是如何设置的,如

    2024年02月02日
    浏览(40)
  • TypeError: parentComponent.ctx.deactivate is not a function

    当两个组件 都可keepalive 的时候 切换就回报这个错误 runtime-core.esm-bundler.js:6086 Uncaught (in promise) TypeError: parentComponent.ctx.deactivate is not a function 路由的问题 之前的写法是 在路由节点内配置name属性,且保证为唯一标识,或其它唯一标识也行(:key=“route.name”) 加上:key=\\\"route.nam

    2024年02月05日
    浏览(31)
  • webpack 解决:TypeError: merge is not a function 的问题

    其一、存在的问题为: TypeError: merge is not a function 中文为: 类型错误:merge 不是函数 其二、问题描述为: 想执行 npm run dev 命令,运行起项目时,控制台报错 TypeError: merge is not a function; 其三、报错的信息为: A、报错的图片: B、报错的代码: 根据报错提示的信息: merge 不

    2024年02月08日
    浏览(50)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包