收藏
回答

WXML中使用WXS函数会出现数据更新检测无效的情况

框架类型 问题类型 终端类型 微信版本 基础库版本
小程序 Bug 微信iOS客户端 未知影响 未知影响

1.当使用键值更新的方式setData时,引用conf对象的WXS函数的返回值无法应用到页面上,如:

this.setData({
    "conf.theme""light"
});
<view class="view {{t.fromObj(conf)}}"></view> 无效
<view class="view {{t.fromKey(conf.theme)}}"></view> 有效

但引用conf.theme的WXS函数可以。

2.当使用对象覆盖的方式setData时,无论WXS函数引用的是conf对象还是conf.theme,其返回值均可以正常应用到页面上,如:

this.setData({
    conf: {
        theme"light"
    }
});
<view class="view {{t.fromObj(conf)}}"></view> 有效
<view class="view {{t.fromKey(conf.theme)}}"></view> 有效

而且简单测试,似乎情况1在所有类型传参均受影响,无论class、style、dataset还是组件的property传参。

且有特殊情况就是:

<view class="view {{t.fromObj(conf)}} {{t.fromKey(conf.theme)}}"></view>


对于情况1,这里似乎因为t.fromKey(conf.theme)被识别到更新,所以同时更新了t.fromObj(conf)

最后一次编辑于  2021-09-16
回答关注问题邀请回答
收藏
登录 后发表内容