微信小程序中带参数返回上一页的方法总结「三种」

微信小程序中带参数返回上一页的方法总结「三种」

在微信小程序中,有时候需要在返回上一页的同时,传递一些参数供上一页使用。以下是三种实现带参数返回上一页的方法:

方法一:使用wx.navigateBack方法传参

这种方法是使用微信小程序提供的wx.navigateBack函数,在该函数中通过delta、success、fail、complete等参数控制返回上一页的行为。其中delta表示返回的层数,success表示成功时的回调函数,fail表示失败时的回调函数,complete表示执行完后的回调函数。传递参数时,可以使用url传递参数,需要将参数拼接在url上。示例代码:

wx.navigateBack({

delta: 1,

success: function(res){

// 回调函数

},

fail: function() {

// 回调函数

},

complete: function() {

// 回调函数

}

})

在上一页的Page对象的onLoad函数中,可以通过options获取传递的参数。示例代码:

onLoad: function(options){

console.log(options)

}

需要注意,使用wx.navigateBack方法传参时,向上一页传参的数据有大小限制,不能超过1MB。

方法二:使用事件触发传参

这种方法是通过在当前页面触发事件,在上一页监听事件传递参数。首先,在当前页面定义一个事件,代码如下:

var pages = getCurrentPages();

var prevPage = pages[pages.length - 2];

prevPage.onLoad=function(options){

console.log(options)

}

在上一页的onLoad函数中监听这个事件,代码如下:

onJump: function() {

var pages = getCurrentPages();

var prevPage = pages[pages.length - 2];// 上一页

prevPage.triggerEvent('myevent', {mydata: '这是传给上一页的数据'})// 触发上一页监听的myevent事件

}

需要注意,使用事件触发传参时,向上一页传参的数据没有大小限制。

方法三:使用wx.setStorage传参

这种方法是使用wx.setStorage进行本地存储,在上一页中使用wx.getStorage获取存储的参数。在当前页面调用wx.setStorage存储参数,代码如下:

var that=this

that.setData({

mydata: '这是需要传递的数据'

})

wx.setStorage({

key: "mydata",

data: that.data.mydata

})

在上一页的onLoad函数中使用wx.getStorageSync获取存储的参数,代码如下:

onLoad: function () {

var mydata=wx.getStorageSync('mydata')

console.log(mydata)

}

需要注意,使用wx.setStorage传参时,向上一页传参的数据没有大小限制,但是需要注意小程序的存储上限,默认大小为10MB,超出后会自动删除早前的数据。

总结

以上就是微信小程序中三种实现带参数返回上一页的方法。需要注意的是,使用wx.navigateBack传参存在数据大小限制,使用事件触发传参需要在上一页监听事件,使用wx.setStorage传参需要注意小程序的存储上限,在实际使用中需要根据实际情况选择合适的传参方式。

免责声明:本文来自互联网,本站所有信息(包括但不限于文字、视频、音频、数据及图表),不保证该信息的准确性、真实性、完整性、有效性、及时性、原创性等,版权归属于原作者,如无意侵犯媒体或个人知识产权,请来电或致函告之,本站将在第一时间处理。猿码集站发布此文目的在于促进信息交流,此文观点与本站立场无关,不承担任何责任。