收藏
回答

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


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

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

4 个回答

  • .
    .
    2019-12-12

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

    2019-12-12
    赞同 1
    回复 3
    • Jason 钟致锐
      Jason 钟致锐
      2019-12-12
      只是是单条记录删除,是在if满足情况下执行,放循环外也一样无刷新。
      2019-12-12
      回复
    • .
      .
      2019-12-12回复Jason 钟致锐
      把setdata拿出来,然后赋值的时候是codelist: listarr
      2019-12-12
      1
      回复
    • Jason 钟致锐
      Jason 钟致锐
      2019-12-12
      谢谢!已经可以了,是我的问题!
      2019-12-12
      回复
  • 子不语
    子不语
    2019-12-12

    谢邀,问题已明确

    2019-12-12
    赞同
    回复
  • 张生
    张生
    2019-12-12

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

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

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

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