this.data.list更新后,页面视图不更新?
发布于 5 年前 作者 min49 12901 次浏览 来自 问答

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

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

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

4 回复

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

无法取消 A C 项是这样的

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

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

弄个代码片段

请使用this.setData

回到顶部