hidden属性部分情况不能动态变化
- 当前 Bug 的表现(可附上截图) wxml 使用 hidden="{{!array.length}}" js 中对 array 进行差量更新,无法触发 hidden 变化,只能全量更新 [代码]<[代码][代码]view[代码] [代码]class[代码][代码]=[代码][代码]"intro"[代码][代码]>[代码][代码] [代码][代码]<!-- hidden 仅在全量设置时会切换状态,差量追加不会触发 hidden 变化 -->[代码][代码] [代码][代码]<[代码][代码]view[代码] [代码]hidden[代码][代码]=[代码][代码]"{{!array.length}}"[代码][代码]>[代码][代码] [代码][代码]show[代码][代码] [代码][代码]</[代码][代码]view[代码][代码]>[代码][代码] [代码][代码]<[代码][代码]view[代码][代码]>[代码][代码] [代码][代码]array.length={{array.length}}[代码][代码] [代码][代码]</[代码][代码]view[代码][代码]>[代码][代码] [代码][代码]<[代码][代码]button[代码] [代码]bindtap[代码][代码]=[代码][代码]"clearArray"[代码][代码]>清空数组</[代码][代码]button[代码][代码]>[代码][代码] [代码][代码]<[代码][代码]button[代码] [代码]bindtap[代码][代码]=[代码][代码]"addItem"[代码][代码]>差量追加数组</[代码][代码]button[代码][代码]>[代码][代码] [代码][代码]<[代码][代码]button[代码] [代码]bindtap[代码][代码]=[代码][代码]"setArray"[代码][代码]>全量设置数组</[代码][代码]button[代码][代码]>[代码][代码] [代码][代码]<[代码][代码]view[代码] [代码]wx:for[代码][代码]=[代码][代码]"{{array}}"[代码][代码]>[代码][代码] [代码][代码]{{item}}[代码][代码] [代码][代码]</[代码][代码]view[代码][代码]>[代码][代码]</[代码][代码]view[代码][代码]>[代码][代码]const app = getApp()[代码] [代码]Page({[代码][代码] [代码][代码]data: {[代码][代码] [代码][代码]array:[][代码][代码] [代码][代码]},[代码][代码] [代码][代码]addItem(){[代码][代码] [代码][代码]const array = [代码][代码]this[代码][代码].data.array[代码][代码] [代码][代码]this[代码][代码].setData({[代码][代码] [代码][代码][[代码][代码]'array['[代码][代码]+array.length+[代码][代码]']'[代码][代码]]:array.length[代码][代码] [代码][代码]})[代码][代码] [代码][代码]},[代码][代码] [代码][代码]setArray(){[代码][代码] [代码][代码]this[代码][代码].setData({[代码][代码] [代码][代码]array: [0,1,2,3,4,5][代码][代码] [代码][代码]})[代码][代码] [代码][代码]},[代码][代码] [代码][代码]clearArray(){[代码][代码] [代码][代码]this[代码][代码].setData({[代码][代码] [代码][代码]array:[][代码][代码] [代码][代码]})[代码][代码] [代码][代码]}[代码][代码]})[代码]- 预期表现 当对 array 差量更新时,hidden="{{!array.length}}" 可以正常变化 - 复现路径 1.点击”差量追加数组“按钮,会向array 中追加一条数据,此时 hidden 属性判断未生效,仍是隐藏状态,应该是显示状态 2.点击”全量设置数组“按钮,会全量更新 array,此时 hidden 属性判断会生效,处于显示状态 3.点击”清空数组“按钮,会全量清除 array,,此时 hidden 属性判断会生效,处于显示状态,此时可以继续测试差量与全量的差异 - 提供一个最简复现 Demo https://developers.weixin.qq.com/s/yLfleHms7975