怎么删除data中的数据
发布于 6 年前 作者 xiulan72 6983 次浏览 来自 问答

通过 that.setData(obj);动态增加了data中的数据,想把增加的数据remove掉(不是list),不知道怎么做?

10 回复
for (let i = 0; i < replyArr.length; i++) {
   WxParse.wxParse('reply' + i, 'html', replyArr[i], that);
   if (i === replyArr.length - 1) {
     WxParse.wxParseTemArray("replyTemArray",'reply', replyArr.length, that)
   }
 }



function wxParseTemArray(temArrayName,bindNameReg,total,that){
  var array = [];
  var temData = that.data;
  var obj = null;
  for(var i = 0; i < total; i++){
    var simArr = temData[bindNameReg+i].nodes;
    array.push(simArr);
  }
 
  temArrayName = temArrayName || 'wxParseTemArray';
  obj = JSON.parse('{"'+ temArrayName +'":""}');
  obj[temArrayName] = array;
  that.setData(obj);//渲染页面,耗时
}

用wxparse组件解析的富文本,我是想尝试刷新到一定评论数时,清空这个data中的replies,不过这样会让用户体验不太好,一翻页之前的评论都没了

如果数据量不大,不会有太大的差别。您可以自行试验,并选择最合理有效的编程方式。

是否可以看看示例代码,以方便评估呢?

另外,如果页面加载的评论元素较多,可以尝试评论分页,来减轻渲染压力。

60条评论以后,渲染时间就成倍成倍的增加,评论是用wxparse组件解析的富文本,有图片有文字

第一张图片是刚开始10条评论的渲染耗时,后面的是60条评论时再加载10条评论的耗时

您可以将其值置为 null 并配合相应的逻辑。

建议您可以在评论过多时,分页显示。

请尝试把 reply1、reply2 放到 data.replies 数组里

大约数据个数达到多少之后,开始变得缓慢呢?

按道理来说界面应该只刷新push进来新的数据,之前的数据也没动,为啥到后面replies 大了之后,setData渲染页面就越来越慢?

回到顶部