小程序返回传参

小程序返回传递参数

场景:个人中心页,部分功能需要用户登录才能使用,用户可以从个人中心去登录,跳转到登录页,登录完成之后,返回到个人中心页,需要主动刷新更新信息

问题:小程序返回上一页的apiwx.navigateBack()不能传参,而且由于小程序钩子函数onLoad()只执行一次,所以返回时,并不能触发onLoad()函数,所以,我们只能在onShow里面去做更新,,但是我们做更新的前提是,我们知道用户已经登录了

解决方法:wx.navigateBack()有一个成功之后的回调,并且可以设置上一页的内容

  const pages = getCurrentPages()
  const prevPage = pages[pages.length - 2]
  wx.navigateBack({
	 delta: 1,
	 success: () => {
		prevPage.onShow('refresh')
	}
 })

这样我们就可以,再回到个人中心页面之后,可以在onShow里面拿到这个参数,来根据这个参数来确定是否更新

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
小程序中,返回上一页并传递参数可以通过以下步骤实现: 1. 首先,使用`wx.navigateBack()`方法返回上一页。该方法可以接收一个参数,表示返回的页面数,默认值为1。例如,如果要返回上一页,可以使用`wx.navigateBack()`或`wx.navigateBack(1)`。 2. 在返回上一页的同时传递参数,可以使用`getCurrentPages()`方法获取当前页面栈。该方法返回一个数组,包含所有当前页面的栈信息,最后一个元素即为当前页面。 3. 获取当前页面对象后,可以使用`setData()`方法设置页面的data属性,传递需要的参数。例如,如果要传递一个名为`param`的参数,可以使用`this.setData({ param: value })`。 4. 在上一页的`onLoad()`生命周期函数中,可以通过`options`参数获取传递的参数值。例如,如果要获取名为`param`的参数值,可以使用`options.param`。 下面是一个示例代码: 当前页(page1): ```javascript // 返回上一页,并传递参数 wx.navigateBack({ delta: 1, success: function () { // 获取当前页面对象 const pages = getCurrentPages(); const prevPage = pages[pages.length - 1]; // 设置参数 prevPage.setData({ param: value }); } }); ``` 上一页(page2): ```javascript Page({ onLoad: function (options) { // 获取传递的参数值 const paramValue = options.param; console.log(paramValue); } }); ``` 在上述示例中,我们在当前页调用`wx.navigateBack()`方法返回上一页,并使用`setData()`方法设置了参数`param`的值。在上一页的`onLoad()`生命周期函数中,通过`options`参数获取了传递的参数值,并将其打印到控制台上。 请注意,返回上一页并传递参数只适用于返回小程序的上一页。如果要跳转到其他页面并传递参数,可以使用`wx.navigateTo()`方法,并在目标页的`onLoad()`生命周期函数中获取传递的参数
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值