收藏
回答

data数据中,删除列表项后,列表重新渲染的问题?

场景说明:

数据是这样的:

data:{

artlist:[

{pic:"http://xxxx.com/1.jpg",con:"啊啊啊啊啊",like:0},

{pic:"http://xxxx.com/2.jpg",con:"噢噢噢噢",like:1},

]

}


如果是新增一个项,我们可以直接通过 "artlist["+artlist.length+"]" 的方式,来填充列表,不会导致整个列表重新渲染。

但如果想要删除一个数据项,要怎么处理才能不渲染整个列表?

最后一次编辑于  2022-08-18
回答关注问题邀请回答
收藏

3 个回答

  • 小布师叔
    小布师叔
    2022-08-18

    提供个笨办法,把删除的idx收集在一个数组里,判断artlist里item的idx是否在这个数据,在就none或者hidden,在关闭的时候再把数据传给某个接口处理,更新后台数据。

    2022-08-18
    有用
    回复
  • 贾雷
    贾雷
    2022-08-18

    artlist.splice(下标,1) 试试会不会渲染 没测试

    2022-08-18
    有用
    回复 2
    • Charles
      Charles
      2022-08-18
      最终还是需要通过setData赋值的,你这只是删除一个数据,赋值给artlist后,还是会全部重新渲染
      2022-08-18
      回复
    • 贾雷
      贾雷
      2022-08-18回复Charles
      那就不行了,小程序没办法删除dom 暂时没有办法
      2022-08-18
      回复
  • 李聪
    李聪
    2022-08-18

    artlist.length = artlist.length - 1 ?

    2022-08-18
    有用
    回复 3
    • Charles
      Charles
      2022-08-18
      你这个在删除最后一个元素的时候,或许是可行的(我也还没测),但是如果是删除中间的元素呢?
      2022-08-18
      回复
    • 李聪
      李聪
      2022-08-18回复Charles
      其实很简单,删除的时候你直接把当前数据渲染的节点高度设为0,然后把数据打个标识已删除,数组长度不变
      2022-08-18
      1
      回复
    • Charles
      Charles
      2022-08-18回复李聪
      嗯,这么处理还算合理
      2022-08-18
      回复
登录 后发表内容