微信小程序自定义列表控件不显示在页面中
我在做一个小程序练习,尝试模仿实现某辞典小程序类似的效果(主页feed列表样式),使用自定义控件。但本地提交云开发数据库,本地数据获取成功后,自定义控件也不显示在页面中。
在console中调试,AppData居然是空。
自定义列表代码(脱敏)
wordsCard.wxml:
<view class="card">
<view class="style">
<view class="username">{{userName}}</view>
<view class="words">{{wordsText}}</view>
<view class="disc">{{desc}}</view>
</view>
</view>
wordsCard.js:
Component({
properties: { //接收外部传递进自定义控件的数据
userName: {
type: String,
//value: '',
}
wordsText: {
type: String,
//value: '',
},
desc: {
type: String,
//value: '',
},
},
data: { //组建内部数据
wordsList:[], //创建一个数组,以备首页列表的js使用
username:'', //这些需要吗?小程序内部控件的初始化为空
word:'',
desc:'',
},
lifetimes:{
...
},
methods: { //组件内部生命周期方法
// 内部展示数据?这里是否有必要?
// showWordsList:function(event){ 参考链接3,在这里获得propertise的数据
// var data = this.properties.data
// var index = e.target.dataset.index
// var username = data[index].username
// var wordstext = data[index].wordsText
// var desc = data[index].desc
// this.setData({
// wordsText:wordstext,
// desc:desc
// })
},
showSayingDetails: function(event){
wx.navigateTo({
url: 'pages/detail/detail+[index]', //点击跳转相应index页面加载详情页
})
},
},
)
主业务逻辑关键代码:
onLoad: function (options) {
let that = this
wx.cloud.database().collection("WordsCard").get({
success(res){
console.log('获取数据成功',res)
var index = res.currentTarget.dataset.index //此处为index
var wordslist = res.data //赋值
//判断列表内容不为空,之前出现undefined报错并做过判断,后现在用这个替代
if(wordsList != null){
that.setData({
wordsList:wordslist, //直接给列表数组赋值还是分别赋值?
// username:res.data.username, 参考链接1中采用了这种赋值方式
// word:res.data.word,
// desc:res.data.desc,
})
} else {
console.log('setdata里的值为空');
}
},
fail(res){
console.log('获取数据失败',res)
}
})
},
## 参考链接
- 微信小程序 项目实战(三)list 列表页 及 item 详情页
- 小程序之自定义组件 ---- 列表goodsList
- 微信小程序:自定义组件(Component)
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
描述信息有点少,不过可以看看以下几个:
也可以在在评论里边回复具体的问题。
木有看到你在
wordsCard.wxml
中使用到请求回来的数据wordsList
,没有去使用,当然不会显示列表了。得使用
wx:for
列表渲染wordsList
每一项。文档请见: https://developers.weixin.qq....