微信小程序列表页跳转到详情页

描述:从列表页,点击不同列,跳转到相对应的详情页,在跳转的过程中需要传递id给详情页.
思路:列表页中,在.wxml页面里,在列标签上自定义一个id属性和一个点击事件;点击的时候触发点击事件 ,在.js文件中从这个点击事件的形参event中可以获取到自定义的id,使用wx.navigateTo({})实现路由跳转,在要跳转的路由后面用?号拼接id,将id传给详情页.在详情页调用详情页的接口就可以实现了
实现过程:
列表页:
.wxml页面:定义一个点击事件和自定义一个id属性,这里的id属性名是data-postId-idex ,属性值是primaryKey,primaryKey是从后端获取回来的每一列的唯一标识.

      <view class="Announcement_content">
      <view   class="Announcement_content_list list_border"  wx:for="{{announcementList}}"      bindtap="getDetail"  data-postId-idex = "{{item.primaryKey}}" wx:for-item="item" wx:key="index">
        <text class="Announcement_content_list_titel">{{item.adAnnoName}}</text>
        <view class="fire_time">
          <image   wx:if="{{item.adAnnoTop == 1}}"  src="../../compones/assates/imgs/huo.png"></image>
          <text class="Announcement_content_list_time">{{item.adAnnoTime}}</text>
        </view>
      </view>
    </view>

后端获取的数据是:

0:
adAnnoAcce: ""
adAnnoEmp: "762019070427031121119"
adAnnoName: "小区绿化杀虫"
adAnnoStatus: 1
adAnnoText: "小区绿化杀虫"
adAnnoTime: "2021-06-01"
adAnnoTop: "1"
adAnnoType: 0
companyId: 76
companyName: "海山金谷天城"
employee: null
images: []
isHaveImage: "1"
lastmodiDate: "2021-06-01 11:05:08"
lastmodiId: "762019070427031121119"
orderNumber: "6674B1AN202106010002"
orderPriority: ""
primaryKey: 651
publisher: ""
recordDate: "2021-06-01"
recordId: "762019070427031121119"
serviceName: "曾惠虹"
views: 6

.js文件中:
这里的url是要跳转到的详情页的路径,路径必须是绝对路径;这里拼接了唯一表示event.currentTarget.dataset.postidIdex.

 getDetail:function(event){
    console.log("event")
    console.log(event)
    wx.navigateTo({
      url: '../../pages/AnnouncementDetails/inAnnouncementDetailsdex?postidIdex='+ event.currentTarget.dataset.postidIdex,
    })
    
  },

详情页:在data中定义primaryKey存放从列表页传过来的唯一表示,onLoad: function (options){}中的options接收了列表页传过来的唯一表示,将这个唯一表示存到data中的primaryKey中,然后调后端给的接口,将唯一表示传给后端,然后做页面渲染即可.

  data: {
    primaryKey:'',
    Detail:[]

  },

  /**
   * 生命周期函数--监听页面加载
   */
  onLoad: function (options) {
    console.log('11111')
    console.log(options)
    this.setData({
      primaryKey:options.postidIdex
    })
    var _that =this
    wx.request({
      url: '后端给的接口', 
      method:'POST',
      data: {
        "primaryKey":this.data.primaryKey,
      },
      header: {
          'content-type': 'application/x-www-form-urlencoded'
      },
      dataType:'json',
      success: function(res) {
        console.log("resssssss")
        console.log(res)
        _that.setData({
          Detail:res.data.list
        })
      }
    })

  },

参考文章:https://blog.csdn.net/weixin_41804429/article/details/81174230

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值