首页 > 其他分享 >vue3 使用 inject provide 提供全局变量 报错 [Vue warn]: inject() can only be used inside setup() or functional

vue3 使用 inject provide 提供全局变量 报错 [Vue warn]: inject() can only be used inside setup() or functional

时间:2024-12-05 13:32:56浏览次数:7  
标签:Vue provide functional js 报错 inject imgurl

报错: vue3 使用 inject provide 提供全局变量 报错 [Vue warn]: inject() can only be used inside setup() or functional functional components.

场景

main.js

 // main.js使用provide 提供全局变量,做图片的url
app.provide('imgurl', 'http://api.baidu.com/')

pro.js

<script setup>
import { ref,reactive,onMounted,inject, computed } from 'vue'
//错误用法
let url=inject('imgurl')+dataFormAdd.xkz_pic
</script>

出现上面的报错
在这里插入图片描述

解决办法

百度了一圈,经过测试,了解到,这个消息是提示我们,需要将引入的方法作为一个变量使用,

正确用法

<script setup>
import { ref,reactive,onMounted,inject, computed } from 'vue'
//将inject('imgurl')保存在一个变量或者常量中就不会报错了
const baseurl=inject('imgurl')
let url=baseurl+dataFormAdd.xkz_pic
</script>

或者直接在模版中渲染也不会报错

 <img class="pro_img" :src="inject('imgurl')+scope.row.mainimage" alt="">

标签:Vue,provide,functional,js,报错,inject,imgurl
From: https://blog.csdn.net/wkj001/article/details/144191984

相关文章

  • VUE-UNI事件转发监听
    VUE以及uni-app如果在项目中事件转发以及监听事件在业务页面a.vue里面,调用了一个第三方接口,这个接口的回调是在项目的app.vue的onShow里面给的回调,那我现在在a.vue里面怎么处理。这个时候就需要做事件的转发,在a页面做事件的监听方法:store下边新建一个jseventBus.jsi......
  • 【SpringBoot+Vue】x-admin管理系统跟做
    技术栈前端技术说明Vue前端框架Vuex全局状态管理框架ElementUI前端UI框架Axios前端HTTP框架vue-element-admin项目脚手架后端技术说明SpringBoot容器+MVC框架MyBatisORM框架MyBatis-plusMyBatis增强工具Redis非关系型数据库Swagger接口文档框架Jwt登录校验令牌根据数据库......
  • 【期末项目】适合大学生的springboot+vue3完成中国铁路12306网站的业务实现【原创】
        ......
  • vue中ref的作用?
    在Vue中,ref是一个用于引用DOM元素的属性,它主要用于以下作用:1.引用DOM元素在Vue组件的模板中,你可以使用ref属性给DOM元素或组件实例添加引用标识。当你使用ref时,Vue会在组件渲染完成后,将DOM元素的引用赋值给组件实例的$refs对象中对应的属性。例如:<template><divref=......
  • vue中的data为什么是一个函数?起到什么作用?
    在Vue中,每个组件的data选项必须是一个函数,这是Vue设计中的一个重要特性。以下解释为什么data是一个函数以及它起到的作用:为什么data是一个函数?保证组件实例的独立性:每个组件实例都有自己的data对象。如果data是一个对象,则所有的组件实例会共享同一个对象,这会导致数据污染,因......
  • 链接MySQL报错2059 -Authentication plugin ‘caching sha2 password‘ cannot be loa
    1.报错内容: 2059-Authenticationplugin'cachingsha2password'cannotbeloaded2.报错截图:3.原因分析:如上图的报错提示可知,报错原因是caching_sha2_password不能加载。在MySQL8.0及以上版本中,默认的用户密码认证插件是'caching_sha2_password',而在MySQL5.7及以下......
  • 在 docker 容器中运行 python 程序,报错:"RuntimeError: can't start new thread"
    具体报错信息如下所示:Traceback(mostrecentcalllast):File"/usr/local/lib/python3.12/site-packages/uvicorn/protocols/http/h11_impl.py",line406,inrun_asgiresult=awaitapp(#type:ignore[func-returns-value]^^^^^^^^^^^^^^^^^^......
  • centos7 python3.9.10 报错 No module named _ssl
    配置openssltar-zxvfopenssl-1.1.1w.tar.gzcdopenssl-1.1.1w/./config--prefix=/usr/local/openssl--openssldir=/usr/local/opensslmakemakeinstallmv/usr/bin/openssl/usr/bin/openssl_backupln-s/usr/local/openssl/bin/openssl/usr/bin/opensslln-s/......
  • vue实现预览的图片进行下载
    代码如下:downImg("图片路径",'下载图片名称');downImg=(textUrl,name)=>{  fetch(textUrl).then(res=>{    res.blob().then(blob=>{      leta=document.createElement('a');      leturl=window.URL.cr......
  • vue中json对象数组求最大、最小、合计方法
    可以使用Array.reduce()方法来求最大、最小、合计值。示例代码如下://假设有以下json对象数组letarr=[{name:'tina',score:90},{name:'tom',score:80},{name:'john',score:70},{name:'jane',score:85}]//求最高分letmaxScor......