目前有个需求,想要获取当前页面在page.json中设置的 navigationBarTitleText 属性值,在小程序中没有查到相应的api,不知道有什么处理方案?
- 发布:2023-09-11 14:56
- 更新:2024-01-01 19:20
- 阅读:2301
最佳回复
import pagesjson from "@/pages.json";
// import { reactive } from "vue";
export function usePages() {
// const style = reactive({});
function getCurrentPage() {
const pages = getCurrentPages();
// 某些特殊情况下(比如页面进行redirectTo时的一些时机),pages可能为空数组
return `${pages[pages.length - 1]?.route ?? ""}`;
}
function getCurrentStyle() {
const route = getCurrentPage();
const getCurrentStyle = pagesjson.pages.find((item) => item.path == route);
return getCurrentStyle.style ?? undefined;
}
function getCurrentTitle() {
const style = getCurrentStyle();
return style ? style.navigationBarTitleText : "";
}
return {
getCurrentPage,
getCurrentStyle,
getCurrentTitle,
};
}
在需要获取的界面使用 :
const { getCurrentTitle } = usePages();
console.log(getCurrentTitle());
喜欢技术的前端 - QQ---445849201
刚研究了,动态生成pages.json,对于你这个需求可以将pages.json 修改为 pages.js, module.exports,再获取到当前页面,就可以知道 配置的标题
onLoad() {
console.log(this.route)
},
module.exports = {
"globalStyle": {
"navigationBarTextStyle": "black",
"navigationBarTitleText": "uni-app",
"navigationBarBackgroundColor": "#F8F8F8",
"backgroundColor": "#F8F8F8"
},
"uniIdRouter": {},
"pages": [
{
"path": "pages/process/ProcessList",
"name": "ProcessList",
"style": {
"navigationBarTitleText": "流程列表"
}
},
{
"path": "pages/user/me",
"style": {
"navigationBarTitleText": "个人中心"
}
},
{
"path": "pages/user/Logout",
"style": {
"navigationBarTitleText": "退出"
}
}
]
}
-
8***@qq.com (作者)
我找到了一个属性:
let pages = getCurrentPages(),
current = pages[pages.length - 1]; // 获取到当前页面的信息
let pageInfo = __wxConfig.page[
${current.route}.html
]; // 内部属性
return pageInfo.window.navigationBarTitleText;
2023-09-12 16:08
DCloud_UNI_OttoJi
这是自行 parse json 实现
2024-01-03 16:53