小程序-动态改变导航栏名字

一种方法是在页面的json文件中进行设置,如下:

{
  "navigationBarTitleText": "最新消息"
}

有时候,我们需要实现这样的需求:比如九宫格,点击每个格,跳转到同一个页面,只是展示的数据不同。

 这时候,导航栏没办法设置成静态的,如何设置成动态的?

1、跳转时,根据传递过来的参数获取到title值

2、调用API wx.setNavigationBarTitle设置标题

实例演示:

1、下面是首页面index,点击之后跳转到list,点击的时候向list页面传递了一个参数cat

<!-- 2 九宫格 -->
<view class="grids">
  <navigator class="item" 
    wx:for="{{categories}}" 
    wx:key="id" 
    url="/pages/list/list?cat={{item.id}}">
    <image src="{{item.icon}}" />
    <text>{{item.name}}</text>
  </navigator>
</view>

2、在list页面接收这个参数,请求后端数据,获取title值,即可实现动态改变

data: {
    category: {}, 
}

// 生命周期函数--监听页面加载
  onLoad(options) {
    fetch(`/categories/${options.cat}`)
      .then(res => {
        this.setData({
          category: res.data
        })
        
        // 1 页面首次渲染之后才可以执行
        // 2 这里不能确定一定是在onReady过后执行,取决于请求后端的速度
        // 3 因此需要在onReady中进行判断,完善逻辑
        wx.setNavigationBarTitle({
          title: res.data.name
        })

        this.loadMore()
      })
  },

// 生命周期函数--监听页面首次渲染完成
  onReady: function() {
    if (this.data.category.name) {
      wx.setNavigationBarTitle({
        title: this.data.category.name
      })
    }
  },

 

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

佛佛ง

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值