c***@qq.com
c***@qq.com
  • 发布:2022-07-30 15:47
  • 更新:2022-08-27 19:24
  • 阅读:454

【报Bug】VUE3 APP_VUE 端 在uni 中挂载变量后,在props 变量 中用于default 要报错(NVUE 中没有这个问题)

分类:uni-app

产品分类: uniapp/App

PC开发环境操作系统: Mac

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

HBuilderX类型: Alpha

HBuilderX版本号: 3.5.3

手机系统: Android

手机系统版本号: Android 9.0

手机厂商: 模拟器

手机机型: 红米NOTE 7

页面类型: vue

vue版本: vue3

打包方式: 云端

项目创建方式: HBuilderX

示例代码:
  
const $ft = {  
  version: 1.009  
}  
  
console.log("挂载变量到uni上面")  
uni.$ft = $ft  
  
  
export default {  
  init(){  
    uni.$ft = $ft  
  },  
  // VUE3 这里两个参数都是一样的,但是Vue2不一样哦  
  // 还有VUE3 不再支持filter过滤器了,所以还是不使用了  
  install: function (Vue, app) {  
    // #ifndef VUE3  
    Vue.prototype.$ft = $ft  
    // #endif  
  
    // #ifdef VUE3  
    app.config.globalProperties.$ft = $ft  
    // #endif  
  }  
}  

props.js  
  
// VUE3  的  vue 页面,这里的编译编译会比任何文件都要优先  
console.log('import props.js')  
export default {  
  props: {  
    version: {  
      type: [String, Number, Object],  
      default: uni.$ft.version  
    },  
  
  }  
}  
  
  
  
  
index.vue  
<template>  
  <view class="ft-body">  
    <view>本来想通过组件演示的,但是这样也可以</view>  
    <view>这里的props.js中有一个default值是 在初始化的是</view>  
    <view>{{version}}</view>  
  </view>  
</template>  
  
<script>  
import props from './props.js'  
export default {  
  mixins: [props],  
  onReady() {  
    console.log(uni.$ft.version)  
  },  
  methods: {},  
}  
</script>  
  
<style scoped>  
  
</style>  

操作步骤:

详见附件demo

预期结果:

props.js中,default 中能正确获取 uni.$ft.version. 中的值

实际结果:

APP-VUE 中出现问题,

H5,目前可以

bug描述:

VUE3 中  
在项目初始化开始的时候,我往 uni 上面设置一个变量,比如  uni.$ft = { version : 1.0 }  
但是当我把这样一个全局变量用在APP_VUE 端 中 props 属性中某个默认值的时候,会出现报错

android 报错,白屏

15:32:40.339 应用【bugNvueCondition】已启动...  
15:32:41.996 import props.js at pages/index/props.js:3  
15:32:42.016 reportJSException >>>> exception function:createInstanceContext, exception:white screen cause create instanceContext failed,check js stack ->Uncaught TypeError: Cannot read property 'version' of undefined  
15:32:42.036 at  (app-service.js:83:26)  
15:32:42.061 at  (app-service.js:158:3)

ios 端不提示 ,但是依旧白屏

15:37:57.827 应用HBuilder已启动(如未启动请手动启动模拟器上的HBuilder应用)...  
15:37:57.848 iOS模拟器功能少于真机基座,具体见:http://ask.dcloud.net.cn/article/35508  
15:38:00.889 [LOG] : import props.js at pages/index/props.js:3 
2022-07-30 15:47 负责人:无 分享
已邀请:
c***@qq.com

c***@qq.com (作者)

这个问题只有 App 的vue 页面出现。NVUE 和 H5 都是没有问题的

要回复问题请先登录注册