普通页面传值
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页面的时候没办法直接传参,只能采用全局变量的方式获取缓存的方式曲线传值