根据ID取详情数据
来源:19-4 使用数据填充新闻详情页面
大脸猫大脸猫喵喵喵
2019-01-13
老师,在取每篇数据是写成postData.postList[postId]这样是不是不够严谨,要是ID和索引不一样呢?是不是用遍历会好一些?
写回答
2回答
-
iStream
2019-01-14
你看看是Object
00 -
iStream
2019-01-14
首先你的想法是对的但是你的解决方法是非主流的耗能做法
主流的写发不是这样“[postId]”而应该是“[Object]”也就是说你设置的 “data”应该是当前的这个对象
跳转到详情页直接就可以获取当前的对象无需判断
wxml 设置Objec 而不是 “postId”
<!-- item list --> <block wx:for="{{postData}}" wx:key="{{item}}"> <!-- 从list中获取Oject 给data-item --> <view class='part' data-item='{{item}}' bindtap='toDital'> <image src='{{item.img}}' mode="widthFix"></image> <view class='title'>{{item.title}}</view> </view> </block>
2.跳转到详情页
toDital: function(event) { //获取当前你点击的item不用你去for循环 var item = event.currentTarget.dataset.item; console.log(item.title) // 如果是对象传递要包装一下 var queryBean = JSON.stringify(item) wx.navigateTo({ //把item传递给详情页 url: 'dital/dital?item=' + queryBean }) },
3.详情页直接获取显示
onLoad: function(options) { // 接收对象要JSON包装一下 var item = JSON.parse(options.item); console.log(item.title); this.setData({ item: item }); }
//数据 //“[]”表示的是list“{}”表示的是item [ { id:1 img:"/img/2.png", title:"小猫咪" } { id:2 img:"/img/2.png", title:"小猫咪" } { id:3 img:"/img/2.png", title:"小猫咪" } { id:4 img:"/img/2.png", title:"小猫咪" } ]
00
相似问题