微信小程序——事件传递参数、页面跳转传递参数、组件传值

wxml页面操作时传递参数

当我们在xxx.wxml页面中,给某个位置绑定事件并想传值时,例如:我们在循环一组元素,每个元素的id是不同的,点击不同元素,根据不同id,请求不同的详细信息

这时,我们需要这样做:

xxx.wxml中:

  <view 
    class="activity-item" 
    wx:for="{{activityList}}" 
    wx:key="index"
    data-id="{{item.id}}"				// 将id 传过去
    bindtap="toActivityDetail"    // 绑定事件
  >
    <image mode="aspectFill" class="activity-item-image" src="{{item.cover}}"></image>
  </view>
xxx.js中,获取id值

  // 跳转至活动详情页面
  toActivityDetail: function(event){
    console.log(event.currentTarget.dataset.id,"传值")
  },

页面跳转传递参数

我们在当前页面跳转至下一页面时,如果想要将参数也带入到下一页面,并在下一页面使用时,可以通过以下方式

a.js 跳转时,将参数拼接到跳转路径后

    wx.navigateTo({
      url: `/pages/activityDetail/activityDetail?activityId=${jumpid}`,
    })


b.js跳转过来后,接收参数,进行下一步操作

  onLoad: function (options) {
    this.getActivityDetailMsg(options.activityId)   // 在页面加载时的选项中,可以接收到跳转前传过来的参数,并进行下一步操作,可以使用setData方法存,也可以直接使用
  },

父组件传值给子组件

父组件:

<view class="activityDetail">
  <image class="activityDetail-image" mode="aspectFill" src="{{activityDetail.banner}}" />
  <t-deadline endDate="{{activityDetail.endDate}}"/>   // 传的属性名为endDate,值为后面的值
</view>
子组件:
Component({
  /**
   * 组件的属性列表
   */
  properties: {
    endDate:{	// 在此处接收该属性
      type:String
    }
  },
// 数据监听器,属性值变化时可以进行相应的操作
  observers:{
    'endDate':function(val){
      if(val){
...

总结用法,希望可以帮助到你,
我是Ably,你无须超越谁,只要超越昨天的自己就好~

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
微信小程序中,可以使用`wx.navigateTo`或`wx.redirectTo`方法跳转页面,并且可以通过传递参数的方式将数据传递到目标页面。具体实现方法如下: 1. 在源页面中,使用`wx.navigateTo`或`wx.redirectTo`方法跳转到目标页面,并将数据以对象的形式传递给目标页面。例如: ```javascript wx.navigateTo({ url: '/pages/target/target?id=123&name=小明&age=18', }); ``` 在上述代码中,我们将数据以查询字符串的形式传递给目标页面,查询字符串的键值对以`&`分隔,键和值之间以`=`连接。 2. 在目标页面的`onLoad`生命周期函数中,获取传递过来的数据。例如: ```javascript onLoad: function (options) { console.log(options); // { id: '123', name: '小明', age: '18' } }, ``` 在上述代码中,我们可以通过`options`参数获取传递过来的数据,`options`是一个对象,包含了所有传递过来的查询字符串的键值对。 需要注意的是,如果传递的数据是一个对象,可以使用`JSON.stringify`方法将其转换成字符串,然后在目标页面中使用`JSON.parse`方法将其转换回对象。例如: ```javascript // 在源页面中传递对象参数 const obj = { id: 123, name: '小明', age: 18 }; wx.navigateTo({ url: `/pages/target/target?data=${JSON.stringify(obj)}`, }); // 在目标页面中获取对象参数 onLoad: function (options) { const data = JSON.parse(options.data); console.log(data); // { id: 123, name: '小明', age: 18 } }, ``` 在上述代码中,我们将传递的对象参数使用`JSON.stringify`方法转换成字符串,然后将其以查询字符串的形式传递给目标页面。在目标页面中,使用`JSON.parse`方法将其转换回对象。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值