收藏
回答

小程序wxml在列表中使template模板标签时,当列表里的数据变更,为什么显示界面不会跟着改变?

<block wx:for="{{list0}}" wx:key="id" >

    <template is="order_listdata="{{item,index}}" />

  </block>

如上面所示,当我用setData()方法改变list0内某项数值发生变化时,显示界面上的数据值还是原来的,不会跟着变化,从调试器里的AppData中查看,数值也是被修改了的,好像<template>标签里的内容,渲染一次后就不会更新,大家有没有遇到过这种情况,是什么原因。


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

1 个回答

  • 然🌳
    然🌳
    2023-02-21

    原因找到了,在使用setData()方法更新数据时,使用动态键名的情况下,里面不能再包含[],而要写成字符串形式:

    that.setData({['list'+that.data.actIdx[idx]]:order}); //这样写法虽然能更改列表的值,但同时也会额外添加一个值到data中,然后列表不会更新

     改成:

    that.setData({['list'+that.data.actIdx+'['+idx+']']:order}); //使用这种写法就正常了


    2023-02-21
    有用
    回复
登录 后发表内容