怎么在列表渲染中渲染对应信息?

发布于 7 年前作者 xia622206 次浏览最后编辑 7 年前来自 ask

想要的效果就是每一块都只显示对应的星星,但是不知道怎么写好……渲染出来就变成了一整列

5 回复
guiyingqiao
guiyingqiao1 楼4 年前

你的问题应该在于如何处理 collect 方便标识 books 每一项的收藏状态

那么你收藏的数据结构应该设计为

collect: {
  "黄昏里的男孩": true,
  "飞鸟集": true
}

wxml 里循环 books 时这一个

改成

<view>
  <image src="/images/{{collect[item.title] ? 'collected' : 'collect'}}.png" data-title="{{item.title}}" bindtap="collect" />
</view>

collect(e) {
  let title = e.currentTarget.dataset.title
  this.setData({
    "collect[title]": !this.data.collect[title]
  })
}
yangjun
yangjun2 楼4 年前

样式的话,用flex布局,另外你想实现收藏还是实现显示作品评分

pyu
pyu3 楼4 年前

你这个星星是收藏的意思?每个书只有一个星星吧?为什么要用for循环?

mingfeng
mingfeng4 楼4 年前

星星为什么循环?

gguo
gguo5 楼4 年前

循环去掉,数组每一项加一个标识,代表是否收藏,不要用collect