setData加载太多条数据报错

发布于 7 年前作者 liaojun4984 次浏览最后编辑 7 年前来自 ask

做上啦加载更多的时候 setData加载太多条数据报错  Dom limit exceeded, please check if there’s any mistake you’ve made.

如果超过一定长度删除的话前面页面展示也不友好  滚动条会永远在底部

10 回复
gang82
gang821 楼6 年前

@k. 能把整个方法贴出来吗?

mxie
mxie2 楼6 年前

应该和你渲染页面时候有关系,我这个方法只是更改了数据的setData的方式。

找了个网址,你自己看看:http://www.wxapp-union.com/forum.php?mod=viewthread&tid=4123

ping51
ping513 楼6 年前

不完整吗?res变量就是你请求到的数据对象

xia71
xia714 楼6 年前

mark一下,按理说如果在wxml中循环渲染指定wx:key的话,不应该出现这个问题吧?

ming52
ming525 楼6 年前

滚动条跟这里的更新多少条无关,属于其他的逻辑。

使用 this.setData({ ‘list[1]’: {} }) 可以追加/更新数组项。

ping90
ping906 楼6 年前

setData这里有数据限制,可以尝试分批更新,不要一次性更新过多数据。

phan
phan7 楼6 年前

可以尝试用 this.setData({ ‘list[1]’: {} }) 这种方法来更新数组的单项,而不是将列表放到setData中。

chao62
chao628 楼6 年前

@k.   你好,用了你的方法,但是还会报错Dom limit exceeded啊,有没有什么要注意的点啊。

lina
lina9 楼6 年前

@k.    666,学习了,谢谢~

wliao
wliao10 楼5 年前

不知道你解决没有,我解决了,贴一下代码

          const obj = {};

          let j = 0;

          res = res.data.data;

          //赋值至obj对象

          for (let i = list.length; i < (list.length + res.length);i++){

            obj[`list[${i}]`] = res[j];

            j++;

          }

          // 追加进data

          that.setData(obj);