微信小程序路由曲线传参

普通页面传值

wx.navigateTo({
  url: 'test?name=xiedajian',       //  路径后可以带参数 如 'path?key=value&key2=value2'
  success:Function,     // 接口调用成功的回调函数
  fail:Function,        // 接口调用失败的回调函数
  complete:Function,        // 接口调用结束的回调函数(调用成功、失败都会执行)
})

//test.js
Page({
  onLoad: function(option){
    console.log(option.name)    // 参数name
  }
})

Tip:上面的方式只能传字符串,需要是对象,数组,需要用 JSON.stringify() 转成字符串传递,

曲线传参

曲线传参方法1:getCurrentPages()
曲线传参方法2:全局变量传参
曲线传参方法2:缓存传参

全局变量,缓存的形式不用详细讲。原理很简单,就是上页存值,下页取值,不再细说

详细讲下利用 getCurrentPages() 曲线传值

getCurrentPages() 曲线传值

var pages = getCurrentPages();
var prepage = pages[pages.length-2];    // 当前页面的上一页

var data = prepages.data.name;      // 获取到上一页的data的子值

Tip:通过这种就可以获取上个页面的数据,数组对象都可以。

也可以用这种方式来进行 返回上一页的时候向上一页传值,原理是通过调用上一页的setData来改变上一页的值

prepages.setData({
    name:'xiedajian'
});
// 不要直接改prepages.data.name ,用setData,这个不用多解释

更多用途

  • 返回上一页时向上页传参

切换tab页面的时候没办法直接传参,只能采用全局变量的方式获取缓存的方式曲线传值

你可能感兴趣的:(微信小程序路由曲线传参)