收藏
回答

调用this.onLoad(),this.onShow()列表重新显示问题?

界面显示wxml

<view wx:for="{{list}}" bind:tap="clickid="{{index}}" class="cc"><checkbox></checkbox>{{item.name}}</view>

js代码

remove:function(val){

    var list = this.data.list

     for (let index = 0; index < list.length; index++{

       if(val==index){

         console.log("删除成功")

         list.splice(index,1)//移除列表某个数据

         this.onLoad()//调用页面加载刷新页面

       }

     }

}

  

删除某个数据后列表没有刷新,还是三个,大佬帮忙看看

回答关注问题邀请回答
收藏

3 个回答

  • 余生
    余生
    2023-09-20


    你 list.splice(index,1) 移除的是 list 的某条数据 移除之后要重新给list赋值

     this.onLoad() 改成下面这个就可以了。

    this.setData({
     list: list
    })
    


    2023-09-20
    有用 2
    回复 1
    • 2331
      2331
      发表于移动端
      2023-09-20
      感谢,大佬的回答,业余的,见笑了
      2023-09-20
      回复
  • จุ๊บ
    จุ๊บ
    2023-09-20

    既然已经传过来下标,为啥还用 for循环呢?

    还有原数据就是三个,删除一个之后,再刷新,那不还是渲染原数据吗?

    2023-09-20
    有用
    回复 2
    • 余生
      余生
      2023-09-20
      估计是个初学者
      2023-09-20
      1
      回复
    • 2331
      2331
      发表于移动端
      2023-09-20
      谢谢回答,确实是初学者,谢谢
      2023-09-20
      回复
  • 我是太阳啊。
    我是太阳啊。
    2023-09-20

    你模拟的数据。刷新肯定删除不了啊 刷新相当于重新赋值了。 this.setData({

    list,

    }) 就行了 别刷新了

    如果是调用api 就让后端查查逻辑

    2023-09-20
    有用
    回复 1
    • 2331
      2331
      发表于移动端
      2023-09-20
      谢谢回答
      2023-09-20
      回复
登录 后发表内容