4940关注14253浏览
数据库有13条数据,初始化加载10条数据,当我下拉触底时,加载了剩下的3条数据,然后在父组件setData,
const that = this;
app.api('api', this.data.apiParams, res => {
that.setData({
list: that.data.list.concat(res)
});
});
list 为父组件数据,Array格式,然后遍历传递给子组件,但是只传递了3条数据,(此时list是13条数据),原先的10条数据没有传递给子组件
下图为footer.js子组件生命周期,可以看到我打印this.data为后两张图的数据
第一次加载10条数据,打印10条
第二次加载剩下的3条数据,只打印了3条
(以为是13条,因为我在父组件中触底时加载时setData
that.setData({
list: that.data.list.concat(res)
});
)
请问要如何才能让子组件接收到包含原来的数据,还是我的姿势不对吗?请各位大佬指教,感谢!
-
至过去的我
2044人对此回答表示赞同
我是未来的你,你现在是不是在年找寻小程序答案。你不要感觉诧异,给你来信原因,就是让你不在后悔。今天去学习如何推广小程序,相信......点击查看更多> -
Brooklyn
18人对此回答表示赞同
wxs只支持es5,仔细看文档,包括wxs支持的数据类型和內建函数
展开180回复分享发布于 6年前评论(0)
收起评论
-
杨佑浩
13人对此回答表示赞同
不对兄弟,你这不是只打印了三条,这是打印了三次,实际效果应该是对的吧?
展开130回复分享发布于 6年前评论(0)
收起评论
-
Luis
13人对此回答表示赞同
第一次加载数据有格式化日期,标题样式也有,但是触底加载新数据进来后,只有新数据日期有格式化和有样式,旧数据(原本有格式化和样式)没有格式化和样式不见了你说wx:key,起初我也怀疑是这个原因,但是我把wx:key去掉也是同样的结果
展开130回复分享发布于 6年前评论(0)
收起评论
-
Sya
11人对此回答表示赞同
第一次加载数据没有格式化日期吗?不过我好像明白你的意思了,你说的没有重新加载应该是wx:key起作用了,因为你是循环加载多个组件的。
展开110回复分享发布于 6年前评论(0)
收起评论
-
李斯年
10人对此回答表示赞同
第三种是可以的,但是我感觉不是很优雅
展开100回复分享发布于 6年前评论(0)
收起评论
-
吞云吐雾
9人对此回答表示赞同
日期没有格式化的原因是因为,第一次组件加载的时候ready发生,但是组件property传递来的data,此时并未渲染。
展开90回复分享发布于 6年前评论(0)
收起评论
-
Amelia
7人对此回答表示赞同
展开70回复分享发布于 6年前评论(0)
收起评论
-
AvaDJ
6人对此回答表示赞同
@杨泉谢谢你,格式化的部分我做在了observer上,解决了这个问题
展开60回复分享发布于 6年前评论(0)
收起评论
-
Claire
3人对此回答表示赞同
你分页后的数据应该追加到原来页面的list数据里面去,然后就是13条一起显示了
展开30回复分享发布于 6年前评论(0)
收起评论
-
Ali爸爸
2人对此回答表示赞同
目前我的解决办法是不用子组件了,直接在父组件写,好烦
展开20回复分享发布于 6年前评论(0)
收起评论