根据ID取详情数据

来源:19-4 使用数据填充新闻详情页面

大脸猫大脸猫喵喵喵

2019-01-13

老师,在取每篇数据是写成postData.postList[postId]这样是不是不够严谨,要是ID和索引不一样呢?是不是用遍历会好一些?

写回答

2回答

iStream

2019-01-14

你看看是Object

//img.mukewang.com/szimg/5c3c1af100015c0316260696.jpg


0
0

iStream

2019-01-14

首先你的想法是对的但是你的解决方法是非主流的耗能做法

主流的写发不是这样“[postId]”而应该是“[Object]”也就是说你设置的 “data”应该是当前的这个对象

 跳转到详情页直接就可以获取当前的对象无需判断

  1. 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:"小猫咪"
 }
]



0
0

微信小程序入门与实战(全新版) 超20000人学习的好课

4年同步微信官方迭代,累计20000+人学习, 比微信官方更火爆!

23867 学习 · 6899 问题

查看课程