微信小程序onShow获取options方法

本文详细介绍了在小程序开发中,onLoad()和onShow()两个生命周期函数在获取页面url参数时的不同。onLoad()可以在其选项对象中直接获取参数,而onShow()则无法直接获取,但可以通过getCurrentPages()方法获取当前页面的options。对于需要在onShow()中使用页面参数的情况,提供了一个有效的解决方法。

onShow() 事件不接受参数,因此无法获取页面 url 传递过来的参数,只有 onLoad() 事件可以。

onLoad(options){
  console.log(options)	//正常打印出 options 值
}
onShow(options){
  console.log(options)	//打印值为 undefined
}
onShow() {
  // 获取当前小程序的页面栈
  let pages = getCurrentPages();
  // 数组中索引最大的页面--当前页面
  let currentPage = pages[pages.length-1];
  // 打印出当前页面中的 options
  console.log(currentPage.options)		//正常打印出 options 值
},

微信小程序中,调用已获取到的参数的方法因参数的来源不同而有所不同。 ### 页面启动参数 若要获取小程序启动时的参数,可在`onShow`或`onLoad`方法里调用`wx.getLaunchOptionsSync()`,其会返回一个包含启动信息的对象,对象的属性包含启动路径、场景值、query 参数等。示例如下: ```javascript // 在index.js中 onShow: function(options) { var obj = wx.getLaunchOptionsSync(); console.log('启动小程序的路径:', obj.path); console.log('启动小程序的场景值:', obj.scene); console.log('启动小程序的 query 参数:', obj.query); console.log('来源信息:', obj.shareTicket); console.log('来源信息参数appId:', obj.referrerInfo.appId); console.log('来源信息传过来的数据:', obj.referrerInfo.extraData); } ``` 以上代码展示了如何在`onShow`方法获取并使用小程序启动时的参数[^2]。 ### 事件处理参数 在 React 微信小程序里,可在事件处理函数中传递自定义参数。例如在`render`方法中,可通过箭头函数将事件对象传递给处理函数: ```javascript render( <View onTouchStart={(e) => {this.touchStart(e)}} onTouchEnd={(e) => {this.touchEnd(e)}} > <Card data={list} /> </View> ) ``` 上述代码中,`onTouchStart`和`onTouchEnd`事件触发时,会将事件对象`e`传递给对应的处理函数`touchStart`和`touchEnd`[^1]。 ### 系统 API 调用 调用系统 API 时,通常会返回包含参数的对象,可直接使用这些对象的属性。以获取小程序启动参数为例,可在`onShow`或`onLoad`方法中调用`wx.getLaunchOptionsSync()`获取启动信息对象,进而使用对象的属性。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值