微信小程序点击数据列表,进入列表详情页面的思路

it2025-02-13  31

1.在index.wxml 通过 bindtap去绑定一个事件。 对于详情页的传输数据,点击事件可以通过 data- 去实现,后面相当于是键值对,data-id="{{item.id}}",意思是把列表的id传过去。

<view class="goods"> <view wx:for="{{listTwo}}" wx:key="{{index}}" class="goods-list" bindtap="toDetail" data-id="{{item.id}}"> <image src="{{item.pic}}"></image> <view class="van-ellipsis">{{item.name}}</view> </view> </view>

2.在index.js,可以定义 toDetail 方法,传入 event事件对象,如图:

3.通过控制台打印可以发现,event.currentTarget.dataset.id的值就是从列表页传过来的 id 的值。然后,就可以通过 wx.navigateTo 进行详情页的跳转,通过拼接的 id的值。

//跳列表详情页面 toDetail(event){ // console.log(event.currentTarget.dataset.id) const id = event.currentTarget.dataset.id;//根据id wx.navigateTo({ url: '/pages/index/detail/detail?id=' + id, }) }

4.在detail.js 中,在onLound生命周期函数中

// 在页面一开始加载的时候就会执行 onLoad:function(options){ let id = options.id //从列表页传过来的id值 // console.log(id) http.getDetail({id:id}).then(res=>{ if(res.data.code==0){ //这里的code为0代表数据获取成功 this.setData({ detailSwiper: res.data.data.pics, basicInfo:res.data.data.basicInfo, content:res.data.data.content.replace(/\<img/gi, '<img style="display:block;max-width:100%;height:auto;margin:0 auto;padding:0"') }) }else if(res.data.code !=0){ wx.showToast({ title: '数据加载失败', duration: 2000 }) } }) }

5.最后在detail.wxml渲染数据

最新回复(0)