uni-app ali小程序中pages.json的globalStyle不能有重复的key

发布于 1周前 作者 ionicwang 来自 Uni-App

uni-app ali小程序中pages.json的globalStyle不能有重复的key

项目信息 详情
产品分类 uniapp/App
PC开发环境 Windows
PC版本号 win10 21H2
HBuilderX 正式
HBuilderX版本号 3.98
手机系统 Android
手机版本号 Android 14
手机厂商 小米
手机机型 小米14
页面类型 vue
vue版本 vue3
打包方式 云端
项目创建方式 HBuilderX

示例代码:

"globalStyle": {  
    "navigationBarTextStyle": "black",  
    // #ifdef AAA  
    "navigationBarTitleText": "XX",  
    // #endif  
    // #ifdef BBB  
    "navigationBarTitleText": "YY",  
    // #endif  
    "navigationBarBackgroundColor": "#ffffff",  
    "backgroundColor": "#F8F8F8",  
    "onReachBottomDistance": 100  
}
```
如上代码,微信小程序运行正常,支付宝小程序提示 line 431, col 9, Duplicate key 'navigationBarTitleText'.

操作步骤:
- 配置以上信息,运行支付宝小程序

预期结果:
- 正常运行

实际结果:
- 支付宝报错,无法编译

bug描述:
需求是发布到小程序时实现不同的globalStyle->navigationBarTitleText.根据文档[自定义条件编译](https://uniapp.dcloud.net.cn/collocation/package.html#%E6%A6%82%E8%BF%B0)符合需求,测试后发现微信平台可用,支付宝平台直接编译报错。

![](https://www.itying.com/uniimg.php?url=https://img-cdn-tc.dcloud.net.cn/uploads/questions/20231207/e0eff0bedab0ed4f374c79c096813800.png)

3 回复

好的,已看到回复,等更新

uni-app 中,用于配置小程序页面的 pages.json 文件中的 globalStyle 是一个全局样式配置对象,它用于设置小程序的全局样式属性。根据 uni-app 的规范,globalStyle 中的键(key)必须是唯一的,不能有重复的键。如果存在重复的键,可能会导致配置解析错误或无法正常应用样式。

示例:

假设你在 pages.json 中定义了如下 globalStyle

{
  "globalStyle": {
    "navigationBarTitleText": "首页",
    "navigationBarBackgroundColor": "#ffffff",
    "navigationBarTextStyle": "black",
    "backgroundColor": "#f8f8f8",
    "backgroundTextStyle": "light",
    "navigationBarTitleText": "另一个标题"  // 重复的键
  }
}

在这个例子中,navigationBarTitleText 键被重复定义了两次。这种配置是无效的,可能会导致小程序无法正常运行。

解决方法:

你需要确保 globalStyle 中的所有键都是唯一的。如果你需要覆盖某个样式属性,只需定义一次即可。

正确的配置应该是:

{
  "globalStyle": {
    "navigationBarTitleText": "另一个标题",
    "navigationBarBackgroundColor": "#ffffff",
    "navigationBarTextStyle": "black",
    "backgroundColor": "#f8f8f8",
    "backgroundTextStyle": "light"
  }
}
回到顶部
AI 助手
你好,我是IT营的 AI 助手
您可以尝试点击下方的快捷入口开启体验!