收藏
回答

this.data.list更新后,页面视图不更新?

小程序组件中,组件用来多选,更改this.data.list,组件视图中显示list值,最后将值回调给页面。

当首次打开组件选择,页面能够正常渲染更新,正常回调值返给页面。

但当第二次再打开组件选择,日志中可以看到this.data.list已经被更改,但是组件视图缺没有变化?

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

4 个回答

  • 金煜峰
    金煜峰
    01-07

    无法取消 A C 项是这样的

    比如点击取消 A 项,首先响应了组件里的 choose_item 方法,正如打印的日志,确实是改掉了,但是选项绑定的是 bindtap,点击事件会继续冒泡,又响应了页面上的 showMultiple 方法,此时页面上显示的是 A/C,所以又调用了组件的 showMultiple 方法把 A 和 C 项的 type 改为了 choosed,所以就取消不掉了

    解决也很简单,把组件里两个的 bindtap='choose_item' 改成 catchtap='choose_item' 就行了

    01-07
    有用 1
    回复
  • xy
    xy
    01-07

    请使用this.setData

    01-07
    有用 1
    回复 7
    • 捌玖💫
      捌玖💫
      01-07
      使用的就是this.setData,上面只是方便描述
      01-07
      回复
    • xy
      xy
      01-07回复捌玖💫
      这里改动下,做一下深拷贝
      01-07
      回复
    • 捌玖💫
      捌玖💫
      01-07回复xy
      转来转去没变化,还是有问题
      01-07
      回复
    • 捌玖💫
      捌玖💫
      01-07回复xy
      还是不行,无法取消A和C两项
      01-07
      回复
    • xy
      xy
      01-07回复捌玖💫
      这是干什么的?去掉这些是好的
      01-07
      回复
    查看更多(2)
  • ¤
    ¤
    01-07

    哥能把这个去掉嘛,你点击abcd的时候一直在重复调用了,所以你去不掉ac

    01-07
    有用
    回复 1
    • 捌玖💫
      捌玖💫
      01-07
      谢谢,改了bindtap就可以了
      01-07
      回复
  • 拾忆
    拾忆
    01-07

    弄个代码片段


    01-07
    有用
    回复 2
登录 后发表内容
问题标签