收藏
回答

hidden属性部分情况不能动态变化

问题模块 框架类型 问题类型 终端类型 微信版本 基础库版本
框架 小程序 Bug 工具 7.0.3 2.6.5

- 当前 Bug 的表现(可附上截图)

  1. wxml 使用 hidden="{{!array.length}}"

  2. 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

最后一次编辑于  04-17  (未经腾讯允许,不得转载)
邀请回答
复制链接收藏投诉关注问题回答

1 个回答

  • RedHood
    RedHood
    04-22

    这个是目前算法实现上导致的问题,已反馈给相关开发,但短期内应该无法修复,不是很容易修复的问题。

    04-22
    赞同 1
    回复