2***@qq.com
2***@qq.com
  • 发布:2021-07-06 13:56
  • 更新:2023-08-03 10:20
  • 阅读:2454

【报Bug】通过Vue.prototype挂载的全局变量在微信小程序里面取不到

分类:uni-app

产品分类: uniapp/小程序/微信

PC开发环境操作系统: Windows

PC开发环境操作系统版本号: 12.0.17763

HBuilderX类型: 正式

HBuilderX版本号: 3.1.18

第三方开发者工具版本号: 1.05.2106300

基础库版本号: 2.18.0

项目创建方式: HBuilderX

操作步骤:

在main.js中使用vue.prototype注册全局变量,在页面中直接给标签赋值,在微信小程序中取不到注册的全局变量

预期结果:

能取到在main.js中注册的全局变量

实际结果:

实际在微信小程序中取不到

bug描述:

通过Vue.prototype挂载的全局变量在微信小程序里面取不到

main.js注册全局变量代码:

import Vue from 'vue'  
import App from './App'  
import { staticUrl } from '@/common/config.js'  

Vue.config.productionTip = false  
Vue.prototype.$staticUrl = staticUrl;  

App.mpType = 'app'  

const app = new Vue({  
    ...App  
})  
app.$mount()

vue代码:

<image style="width: 80upx;" :src="$staticUrl + '/icon/wechar.png'" mode="widthFix"></image>

打包成微信小程序后控制台查看的代码:

<image style="width:40px;" src="undefined/icon/wechar.png" mode="widthFix" class="data-v-35463111"></image>

通过页面data中绑定和存储在vuex中都是可用的,唯独通过prototype注册的在打包成小程序后取不到值

2021-07-06 13:56 负责人:无 分享
已邀请:
清茶涩

清茶涩

你是不是还有一个贴,我在那个贴回复你了。全局挂载的属性在小程序无法使用的,但是里面的方法可以。比如你有个全局的方法,是可以直接@tap="$api.function"用的,但是$api.abc这种不行

  • 1***@qq.com

    可以写个dome 或者贴个代码看下吗

    2021-09-30 16:45

Miaoaa

Miaoaa - js,node,python

import baseConfig from '@/baseConfig.js';
Vue.prototype.$imgBaseUrl = baseConfig.reqUrl;

=》代码
<image :src="$imgBaseUrl + item" mode="scaleToFill" style="width: 100%;height: 100%;" @click="previewImage(item)"></image>
=》实际效果
<image :src="undefined+ item" mode="scaleToFill" style="width: 100%;height: 100%;" @click="previewImage(item)"></image>
在小程序里这么用行不通,太坑了

1***@163.com

1***@163.com - 在技术的道路上缓慢前进

那你别挂原型上呗,放到getApp()全局实例里面

要回复问题请先登录注册