微信小程序获取路由传参的数据

在微信小程序中,可以通过以下几种方式获取路由传参的数据:

  1. 使用getCurrentPages方法获取当前页面栈的实例数组,其中数组的最后一项即为当前页面的实例。通过该实例可以获取到页面的options属性,该属性包含了路由传递的参数信息。示例代码如下:

    const currentPage = getCurrentPages()[getCurrentPages().length - 1];
    const options = currentPage.options;
    console.log(options);
    

    在上述代码中,getCurrentPages()方法返回当前页面栈的实例数组,通过下标 [getCurrentPages().length - 1] 获取当前页面的实例,然后使用options属性获取到路由传递的参数信息。

  2. 在配合路由跳转时,可以使用navigateToredirectToswitchTab等跳转方法,将参数以查询字符串的形式拼接到目标页面的URL中。在目标页面的onLoad生命周期函数中,可以通过options参数获取到传递的参数信息。示例代码如下:

    // 跳转时传递参数
    wx.navigateTo({
      url: '/pages/targetPage/targetPage?id=123&name=John',
    });
    
    // 目标页面接收参数
    Page({
      onLoad: function (options) {
        console.log(options);  // 输出:{ id: '123', name: 'John' }
      },
    });
    

    在上述代码中,navigateTo方法用于跳转到目标页面,并在URL中携带参数 idname。在目标页面的onLoad生命周期函数中,通过参数 options获取到传递的参数信息。

  3. 如果使用了微信小程序自带的<navigator>组件进行页面跳转,可以在目标页面的onLoad生命周期函数中通过getCurrentPages方法获取到页面栈中的前一个页面实例,然后通过实例的eventChannel属性传递参数。示例代码如下:

    // 前一个页面传递参数
    wx.navigateTo({
      url: '/pages/targetPage/targetPage',
      events: {
        // 通过 eventChannel 传递参数
        acceptDataFromOpenerPage: function (data) {
          console.log(data);  // 输出:{ id: '123', name: 'John' }
        },
      },
      success: function (res) {
        // 通过 eventChannel 向目标页面传递参数
        res.eventChannel.emit('acceptDataFromOpenerPage', { id: '123', name: 'John' });
      },
    });
    
    // 目标页面接收参数
    Page({
      onLoad: function (options) {
        const eventChannel = this.getOpenerEventChannel();
        eventChannel.on('acceptDataFromOpenerPage', function (data) {
          console.log(data);  // 输出:{ id: '123', name: 'John' }
        });
      },
    });
    

    在上述代码中,通过 eventssuccess参数实现了页面间传递参数的功能。在前一个页面中使用 eventChannel.emit方法向目标页面传递参数,在目标页面的onLoad生命周期函数中通过 getOpenerEventChannel方法获取到前一个页面传递的参数。

这些是获取路由传参数据的几种常用方式。根据你的具体需求和场景选择合适的方法进行参数获取。

希望对你有所帮助!如果还有其他问题,请随时提问。

  • 8
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值