uni-app ali小程序中pages.json的globalStyle不能有重复的key
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)符合需求,测试后发现微信平台可用,支付宝平台直接编译报错。

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"
}
}