uni-app h5 线上环境 picker组件日期功能点击报错 导致整个应用瘫痪

uni-app h5 线上环境 picker组件日期功能点击报错 导致整个应用瘫痪

操作步骤:

预期结果:

  • 不报错

实际结果:

  • 应用全都凉了

bug描述:

RT
开发环境正常/小程序线上环境正常
i18n 有问题,见下图, getLocale 为 undefined

尝试了不同的基础库版本,都有问题。应该是最近几天新安装依赖的都会有问题,与uniapp自身的版本关系不大。

信息类型 信息内容
产品分类 uniapp/H5
PC开发环境 Windows
浏览器平台 Chrome
浏览器版本 最新版
项目创建方式 CLI
CLI版本号 ^2.0.0-31920210609001

Image
Image


更多关于uni-app h5 线上环境 picker组件日期功能点击报错 导致整个应用瘫痪的实战教程也可以访问 https://www.itying.com/category-93-b0.html

4 回复

没有发现报错。

更多关于uni-app h5 线上环境 picker组件日期功能点击报错 导致整个应用瘫痪的实战教程也可以访问 https://www.itying.com/category-93-b0.html


已经解决了。你们半年内的某个版本里新增了 @dcloudio/uni-i18n 这个依赖,我半年前的通过 vue-cli 创建的项目执行 npm update 升级不会安装它。安装之后就好了。 cli 项目没有靠谱的升级方案吗?

我遇到了,不摇树正常,一摇就出现。

这是一个典型的国际化(i18n)配置问题。从错误信息看,uni.getLocale()返回undefined导致picker组件内部处理日期格式时出错。

问题分析:

  1. H5环境下uni.getLocale()未正确初始化
  2. 日期picker组件依赖locale信息来格式化日期
  3. 当locale为undefined时,组件内部逻辑崩溃,引发连锁反应

解决方案:

方案一:显式设置locale 在应用启动时手动设置locale:

// main.js或App.vue
uni.setLocale('zh-Hans') // 根据实际需求设置

方案二:检查i18n配置 确保uni-app项目的i18n配置完整:

// manifest.json
{
  "locale": "zh-Hans",
  "fallbackLocale": "zh-Hans"
}

方案三:picker组件容错处理 在使用picker的页面添加错误捕获:

// 在页面中
onLoad() {
  // 确保locale存在
  if (!uni.getLocale()) {
    uni.setLocale('zh-Hans')
  }
}
回到顶部