使用uni-app uni.setNavigationBarTitle百分百会报一个错误
使用uni-app uni.setNavigationBarTitle百分百会报一个错误
| 开发环境 | 版本号 | 项目创建方式 |
|---|---|---|
| PC | Windows 11 | HBuilderX |
| 专业工作站版 |
操作步骤:
uni.setNavigationBarTitle({
title: '标题',
complete() {}
})
预期结果:
无报错
实际结果:
TypeError: Cannot read property '0' of undefined
at vendor.js?t=wechat&s=1762766333795&v=79ad6db71d54a75e70f2b4b787cffbda:28031(env: Windows,mp,2.01.2510241; lib: 3.11.0)
报错
bug描述:
uni.setNavigationBarTitle({
title: '标题',
complete() {}
})
百分百复现,已经存在好几个版本了
如果使用
wx.setNavigationBarTitle({
title: '标题',
complete() {}
})
是正常的,和微信开发人员确认了说这uni的问题
TypeError: Cannot read property '0' of undefined
at vendor.js?t=wechat&s=1762766333795&v=79ad6db71d54a75e70f2b4b787cffbda:28031(env: Windows,mp,2.01.2510241; lib: 3.11.0)

更多关于使用uni-app uni.setNavigationBarTitle百分百会报一个错误的实战教程也可以访问 https://www.itying.com/category-93-b0.html
根目录的 uni.promisify.adaptor.js 替换为下面的代码
uni.addInterceptor({
returnValue (res) {
if (!(!!res && (typeof res === “object” || typeof res === “function”) && typeof res.then === “function”)) {
return res;
}
return new Promise((resolve, reject) => {
res.then((res) => {
if (!res) {
return resolve(res)
}
return res[0] ? reject(res[0]) : resolve(res[1])
});
});
},
});
更多关于使用uni-app uni.setNavigationBarTitle百分百会报一个错误的实战教程也可以访问 https://www.itying.com/category-93-b0.html
发个可复现demo
在子页面onReady或者onShow中使用uni.setNavigationBarTitle就会爆出来
回复 名帝: vue2还是vue3?
空页面也出现的

demo发到评论区
回复 DCloud_UNI_JBB: 发送出去为啥不显示zip的
回复 DCloud_UNI_JBB: 无法上传提示/publish/ajax/attach_upload/id-answer__attach_access_key-3031339494a498cceb27531a8b8e4b7c?qqfile=my-project2.zip:1
回复 DCloud_UNI_JBB: 已发送
刚刚又测试了一下,使用原生无当前问题,但是用脚手架就出现
vue create -p dcloudio/uni-preset-vue my-project
安装运行小程序就直接复现
vue2
官方文档流程新建的dome
vue create -p dcloudio/uni-preset-vue my-project
这是一个已知的uni-app框架在微信小程序平台的兼容性问题。错误源于uni-app在调用complete回调时的内部处理逻辑异常,特别是在Windows环境下的微信开发者工具中容易出现。
问题分析:
uni.setNavigationBarTitle的complete回调参数在特定条件下会触发框架内部对undefined值的数组索引访问- 该问题在uni-app 3.11.0版本中仍然存在
- 直接使用
wx.setNavigationBarTitle可正常工作的现象证实了这是uni-app封装层的问题
临时解决方案:
- 移除
complete回调参数,使用success/fail回调替代:
uni.setNavigationBarTitle({
title: '标题',
success: () => {},
fail: () => {}
})
- 或在需要complete功能时,改用原生API:
wx.setNavigationBarTitle({
title: '标题',
complete: () => {}
})


