1.创建一个新项目
2.添加uni-id-pages
- 发布:2023-03-23 00:39
- 更新:2023-06-05 19:05
- 阅读:1130
产品分类: uniapp/小程序/微信
PC开发环境操作系统: Mac
PC开发环境操作系统版本号: 10.14.6
HBuilderX类型: 正式
HBuilderX版本号: 3.7.7
第三方开发者工具版本号: 1.06.2303222
基础库版本号: 2.30.2
项目创建方式: HBuilderX
操作步骤:
预期结果:
一切正常
一切正常
实际结果:
勾选JS编译成ES5 , unicloud的查询在微信开发者工具控制台会报错,二维码预览正常,HBX控制台中有返回的数据。
取消JS编译成ES5后,unicloud查询正常,二维码预览不正常,无法正常预览。
勾选JS编译成ES5 , unicloud的查询在微信开发者工具控制台会报错,二维码预览正常,HBX控制台中有返回的数据。
取消JS编译成ES5后,unicloud查询正常,二维码预览不正常,无法正常预览。
bug描述:
微信开发者工具勾选 将JS编译成ES5 ,unicloud的get查询会报错 ‘ReferenceError: _t3 is not defined’。取消JS编译成ES5则正常,但是取消后点预览会有这个提示
message:Error: 非法的文件,错误信息:invalid file: uni_modules/uni-id-pages/common/store.js, 1:1387, SyntaxError: Unexpected token ?!function(){"use strict";const e=require("../../../common/vendor.js"),n=require("../config.js"),i=e.Es.importObject("uni-id-co"),t=e.Es.database().collection("uni-id-users");let o=e.index.getStorageSync("uni-id-pages-userInfo")||{};const s={userInfo:o,hasLogin:0!=Object.keys(o).length},r={async updateUserInfo(n=!1){if(n)t.where("_id==$env.uid").update(n).then(i=>{i.result.updated?(e.index.showToast({title:"更新成功",icon:"none",duration:3e3}),this.setUserInfo(n)):e.index.showToast({title:"没有改变",icon:"none",duration:3e3})});else{const n=e.Es.importObject("uni-id-co",{customUI:!0});try{let e=await t.where("'_id' == $cloudEnv_uid").field("mobile,nickname,username,email,avatar_file").get();const i=await n.getRealNameInfo();this.setUserInfo({...e.result.data[0],realNameAuth:i})}catch(e){this.setUserInfo({},{cover:!0}),console.error(e.message,e.errCode)}}},async setUserInfo(n,{cover:i}={cover:!1}){let t=i?n:Object.assign(a.userInfo,n);return a.userInfo=Object.assign({},t),a.hasLogin=0!=Object.keys(a.userInfo).length,e.index.setStorage({key:"uni-id-pages-userInfo",data:a.userInfo}),n},async logout(){var n;if(e.Es.getCurrentUserInfo().tokenExpired>Date.now())try{await i.logout()}catch(e){console.error(e)}e.index.removeStorageSync("uni_id_token"),e.index.setStorageSync("uni_id_token_expired",0),e.index.redirectTo({url:"/"+((null==(n=e.pagesJson.uniIdRouter)?void 0:n.loginPage)??"uni_modules/uni-id-pages/pages/login/login-withoutpwd")}),e.index.$emit("uni-id-pages-logout"),this.setUserInfo({},{cover:!0})},loginBack(n={}){const{uniIdRedirectUrl:i=""}=n;let t=0,o=getCurrentPages();if(o.forEach((e,n)=>{"login"==o[o.length-n-1].route.split("/")[3]&&t++}),i)return e.index.reLaunch({url:i});if(t){const n=e.pagesJson.pages[0];return e.index.reLaunch({url:"/"+n.path})}e.index.navigateBack({delta:t})},loginSuccess(i={}){const{showToast:t=!0,toastText:o="登录成功",autoBack:s=!0,uniIdRedirectUrl:r="",passwordConfirmed:a}=i;if(t&&e.index.showToast({title:o,icon:"none",duration:3e3}),this.updateUserInfo(),e.index.$emit("uni-id-pages-login-success"),n.config.setPasswordAfterLogin&&!a)return e.index.redirectTo({url:r?/uni_modules/uni-id-pages/pages/userinfo/set-pwd/set-pwd?uniIdRedirectUrl=${r}&loginType=${i.loginType}
:"/uni_modules/uni-id-pages/pages/userinfo/set-pwd/set-pwd?loginType="+i.loginType,fail:e=>{console.log(e)}});s&&this.loginBack({uniIdRedirectUrl:r})}},a=e.reactive(s);exports.mutations=r}(); [20230323 00:22:25][wx92f12e36061bf318]
appid: wx92f12e36061bf318
openid: o6zAJsz7xX24lcJyKAAJgFo2VlmA
ideVersion: 1.06.2303222
osType: darwin-x64
time: 2023-03-23 00:22:31
勾选JS编译ES5则能正常生成二维码预览。
未复现此问题,请升级uni-id-pages至最新版本再试试,如果还不行,提供你的最简化复现示例(上传附件)【咨询问题/bug处理优先级规则】:https://ask.dcloud.net.cn/article/38139
3***@qq.com (作者)
把uni-id-pages页面注册一下就出现问题了,勾上JS转ES5可以生成预览二维码,但是unicloud的请求会报错。如果不用uni-id-pages的那些页面就正常的。
-
3***@qq.com (作者)
回复 DCloud_UNI_Anne: 嗯对,在page.json中写了uni-id-pages的页面就出现上述问题,我上传附件了啊
2023-03-28 18:53
-
回复 3***@qq.com: 勾选JS编译成ES5,开发者工具和二维码预览均正常。取消JS编译成ES5后,二维码预览不正常,此问题已复现
2023-03-28 20:02
-
3***@qq.com (作者)
回复 DCloud_UNI_Anne: 找到问题了,二维码预览不正常报错是用了 '??' 这个运算符,在uni-id-pages/common/store 81行左右。新建一个js文件用 ?? 这个运算符,在别的页面 import 就报错了,换成'||'就是正常的。但是我直接在页面用 '??' 不会报错
2023-03-29 03:32
HBuilder X 3.7.9
小程序开发者工具勾选js编译成es5 就会报错
报错代码:ReferenceError: _t3 is not defined
app.vue 文件
<script>
export default {
onLaunch: function() {
console.log('App Launch')
const db = uniCloud.database()
db.collection('uni-id-users')
.where('_id==$cloudEnv_uid')
.field('nickname')
.get({ getOne: true })
.then((res) => {
console.log(res);
})
},
onShow: function() {
console.log('App Show')
},
onHide: function() {
console.log('App Hide')
}
}
</script>
我更新成最新的仍然报错 ReferenceError: _t3 is not defined 去掉JS转es5就正常
hbuilx 版本:3.7.11.20230427
微信开发者工具 :1.06.2303220
3***@qq.com (作者)
上传了,用的最新的uni-id-pages
2023-03-27 21:57