收藏
回答

关于页面splice删除一条数据 setData 后,页面同步刷新问题?


页面删除操作,用splice删除data.codelist的一条数据操作,执行后数据库也删除了,页面的data也删除了。setData后页面还有被删除的数据,未同步刷新,请问是什么问题?代码是否有错误呢?

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

5 个回答

  • .
    .
    2019-12-12

    你的setdata在循环里面干啥,放到循环外面来

    2019-12-12
    有用 1
    回复 6
    • 2019-12-12
      只是是单条记录删除,是在if满足情况下执行,放循环外也一样无刷新。
      2019-12-12
      回复
    • .
      .
      2019-12-12回复
      把setdata拿出来,然后赋值的时候是codelist: listarr
      2019-12-12
      1
      回复
    • 2019-12-12
      谢谢!已经可以了,是我的问题!
      2019-12-12
      回复
    • 丸子&小樱桃^_^
      丸子&小樱桃^_^
      2020-05-03回复
      你好,我想问下你是怎么解决的,我删除该项后,setData,发现删除的总是最后一项,但是下标也没有错
      2020-05-03
      回复
    • 2020-05-03
      删除项错误的现象我并没有出现,你查一下index是否正确?
      2020-05-03
      回复
    查看更多(1)
  • 城南
    城南
    2022-12-01

    解决方法:

    在子控件里添加value属性,并且该属性为当前item的对应属性值。

    (PS:我也遇到了楼主一样的bug,现在已解决)

    2022-12-01
    有用
    回复
  • 子不语
    子不语
    2019-12-12

    谢邀,问题已明确

    2019-12-12
    有用
    回复
  • 我是小肥
    我是小肥
    2019-12-12

    楼上两位都说到点了,哈哈。你的listarr就是一个let声明的变量。。。。能这么玩的吗?setdata也不能放循环里呀。

    2019-12-12
    有用
    回复 4
    • 2019-12-12
      let listarr应用于该区块变量,setdata在if里只会执行一次,setData更新数组是成功的,就是没有渲染到页面的wx:for里。问题是没渲染到页面。删除数组数据是正常的。
      2019-12-12
      回复
    • 我是小肥
      我是小肥
      2019-12-12回复
      这么说吧,你应该先把数据构造好,不要在里面这么操作,你在外面把数组构造好,直接用循环显示出来就好了。这样逻辑会不会更清晰也没有不明的问题呢?
      2019-12-12
      回复
    • 我是小肥
      我是小肥
      2019-12-12
      而且,微信小程序的初衷也是告诉你不要频繁SetData
      2019-12-12
      回复
    • 2019-12-12
      明解了,感谢耐心的讲解。
      2019-12-12
      回复
  • Once Was
    Once Was
    2019-12-12

    首先,楼上说的对,其次,setdata里面确定你写对了?不应该是that.setData({codelist:listarr})吗?

    2019-12-12
    有用
    回复 3
    • 2019-12-12
      that.setData({codelist:listarr})直接报错!谢谢
      2019-12-12
      1
      回复
    • Once Was
      Once Was
      2019-12-12回复
      贴个报错的图看看
      2019-12-12
      回复
    • 2019-12-12
      我弄错了!^_^谢谢Once Was
      2019-12-12
      回复
登录 后发表内容
问题标签