数据库有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)
});
)
请问要如何才能让子组件接收到包含原来的数据,还是我的姿势不对吗?请各位大佬指教,感谢!
第一次加载数据有格式化日期,标题样式也有,但是触底加载新数据进来后,只有新数据日期有格式化和有样式,旧数据(原本有格式化和样式)没有格式化和样式不见了你说wx:key,起初我也怀疑是这个原因,但是我把wx:key去掉也是同样的结果
日期没有格式化的原因是因为,第一次组件加载的时候ready发生,但是组件property传递来的data,此时并未渲染。
ready是可能发生在数据渲染之前的,明白?
你这种情况把格式化那部分做到property的observer上,或者直接在wxml中使用wxs来实现
你分页后的数据应该追加到原来页面的list数据里面去,然后就是13条一起显示了
contentlist: contentlistTem.concat(contentlist),
别人的链接,仅供参考:https://blog.csdn.net/xiehuimx/article/details/74938034