首页IT科技uni-app自定义底部导航栏(uni-app动态修改导航栏标题)

uni-app自定义底部导航栏(uni-app动态修改导航栏标题)

时间2025-05-05 04:38:34分类IT科技浏览7960
导读:对导航栏标题进行修改,直接使用就可以 uni.setNavigationBarTitle({ title:...

对导航栏标题进行修改               ,直接使用就可以

uni.setNavigationBarTitle({ title: "标题名称" });

动态修改标题名称                     ,数据可能是从上一个页面传递过来的       ,直接在onLoad页面周期函数中使用

onLoad(props) { console.log(props,"onLoad");//获取上一个页面传递的数据 if (props?.title) { const titleType = props.title; let barTitle = "预约会议"; switch (titleType) { case "order": barTitle = 预约会议; break; case "create": barTitle = 创建会议; break; case "edit": barTitle = 编辑会议; break; default: break; } uni.setNavigationBarTitle({ title: barTitle }); } }

⚠️可能会出现在网页中切换标题正常               ,但是在真机中没有效果                      ,通过查看官网看到这么一句话

如果需要在页面进入时设置标题       ,可以在onReady内执行       ,以避免被框架内的修改所覆盖               。如果必须onShow内执行需要延迟一小段时间

打印页面生命周期发现onLoad先于onReady执行                      ,所以即使数据是上一个页面传递过来的              ,也不会影响标题的展示                     。

第一步       ,我们可以在data中定义一个变量headerTitle data(){ return { headerTitle:"",//导航栏的标题 } }

第二步                      ,在onLoad页面周期中去获取上一个页面传递的参数              ,然后对headerTitle进行赋值,方便我们接下来的使用

onLoad(props) { console.log(props,"onLoad");//获取上一个页面传递的数据 if (props?.title) { const titleType = props.title; let barTitle = "预约会议"; switch (titleType) { case "order": barTitle = 预约会议; break; case "create": barTitle = 创建会议; break; case "edit": barTitle = 编辑会议; break; default: break; } this.headerTitle=barTitle } }

最后                      ,需要在onReady中进行设置标题                     ,⚠️onReady中没有接收的参数

onReady(){ uni.setNavigationBarTitle({ title: this.headerTitle }); }

通过借助两个页面周期函数,可以实现动态修改导航栏标题

上一个页面传递的参数

const type = create;//传递给下一个页面的参数 uni.navigateTo({ url: `/pages/bookAMeeting/index?title=${type}` })

创心域SEO版权声明:以上内容作者已申请原创保护,未经允许不得转载,侵权必究!授权事宜、对本内容有异议或投诉,敬请联系网站管理员,我们将尽快回复您,谢谢合作!

展开全文READ MORE
外链布局与SEO优化案例分析(以外链建设为重点,提升网站排名与流量)