setData加载太多条数据报错
发布于 5 年前 作者 liaojun 4798 次浏览 来自 问答

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

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

10 回复

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

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

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

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

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

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

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

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

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

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

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

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

          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);

回到顶部