一、遇到的问题
uniapp中使用uview的NoticeBar滚动通知,发现默认的text参数,在direction为column时要求为数组,默认的结构是:
['帮帮乐,乐在其中','系统内测中,征求宝贵意见']
但是我的数据结构是如下的形式,还想通过点击来跳转到文章的详情页面
[
['id'=>'1','title'=>'帮帮乐,乐在其中'],
['id'=>'2','title'=>'系统内测中,征求宝贵意见']
]
按照默认的组件,这样的结构是不能正常显示的。查看了组件的写法,发现只有修改组件,才能达到想要的形式。
二、解决问题
-
找到组件的位置,看到写法如下
-
再找到u-column-notice,如下
发现这里,text数组中直接调用的是item,按照我的数据结构改一下这里
item 改成 item.title
<swiper-item v-for="(item, index) in text" :key="index" class="u-notice__swiper__item" >
<text class="u-notice__swiper__item__text u-line-1" :style="[textStyle]" >
{{ item.title }}
</text>
</swiper-item>
这样,在页面中就可以正常显示title了。
三、增加点击,跳转到详情页
给NoticeBar加上click,可以获得index,点击时,获取数组的index行数据的id即可。
<u-notice-bar :text="textList" direction="column"
color="#666666" bgColor="#ffffff" @click="goArticle" ></u-notice-bar>
goArticle(index) {
let url = '/pages/article/detail?id=' + this.textList[index].id;
uni.navigateTo({
url: url
})
}
四、结束
没了。