uni-app pages.json 中单个页面的配置无法覆盖全局配置

uni-app pages.json 中单个页面的配置无法覆盖全局配置

开发环境 版本号 项目创建方式
Windows 10 HBuilderX

产品分类:uniapp/App

PC开发环境操作系统:Windows

PC开发环境操作系统版本号:10

HBuilderX类型:正式

HBuilderX版本号:2.7.5

手机系统:iOS

手机系统版本号:iOS 13.4

手机厂商:苹果

手机机型:11

页面类型:vue

打包方式:云端

操作步骤:

在 pages.json 中设置全局页面标题栏的配置

"globalStyle": {  
  ...  
  "app-plus": {  
    ...  
    "titleNView": {  
        "splitLine": {  
          "color": "#ccc",  
          "height": ".5px"  
      }  
    }  
  }  
}

单个页面设置不显示标题栏

{  
  "path": "pages/login/index",  
  "style": {  
    ...  
    "navigationStyle": "custom", // 无效,还是会显示标题栏  
    ...  
  }  
}

预期结果:

单个页面不显示标题栏

实际结果:

有个白区块

bug描述:

如果在 pages.json 中设置了全局页面标题栏的配置

"globalStyle": {  
  ...  
  "app-plus": {  
    ...  
    "titleNView": {  
        "splitLine": {  
          "color": "#ccc",  
          "height": ".5px"  
      }  
    }  
  }  
}

那么单个页面如果设置不显示标题栏是无效的

{  
  "path": "pages/login/index",  
  "style": {  
    ...  
    "navigationStyle": "custom", // 无效,还是会显示标题栏  
    ...  
  }  
}

更多关于uni-app pages.json 中单个页面的配置无法覆盖全局配置的实战教程也可以访问 https://www.itying.com/category-93-b0.html

3 回复

titleNView 的优先级比 navigationStyle 高
参考下面的配置 {
“pages”: [
{
“path”: “pages/index4/index4”,
“style”: {
“navigationStyle”: “custom”,
“app-plus”: {
“titleNView”: false
}
}
}
],
“globalStyle”: {
“navigationBarTextStyle”: “black”,
“navigationBarTitleText”: “uni-app”,
“navigationBarBackgroundColor”: “#F8F8F8”,
“backgroundColor”: “#F8F8F8”,
“app-plus”: {
“titleNView”: {
“splitLine”: {
“color”: “#ccc”,
“height”: “.5px”
}
}
}
}
}

更多关于uni-app pages.json 中单个页面的配置无法覆盖全局配置的实战教程也可以访问 https://www.itying.com/category-93-b0.html


ok了,谢谢

这是一个已知的uni-app在App端的配置优先级问题。当在globalStyle中配置了app-plus.titleNView后,页面级的navigationStyle:"custom"会失效。

解决方案有两种:

  1. 在页面配置中明确设置titleNView为false:
{
  "path": "pages/login/index",
  "style": {
    "app-plus": {
      "titleNView": false
    }
  }
}
  1. 或者改用条件编译处理:
{
  "path": "pages/login/index",
  "style": {
    "navigationStyle": "custom",
    "app-plus": {
      "titleNView": false
    }
  }
}
回到顶部