基础库2.7.2问题反馈
发布于 6 年前 作者 xiangxia 14789 次浏览 来自 问答
  • 当前 Bug 的表现(可附上截图)
  • 预期表现
  • 复现路径
  • 提供一个最简复现 Demo
this.triggerEvent('changeData', {
    someValues: "test"
});
 
console.log(this.properties.someValues) // 此处log出来的someValues 不是上面设置的test 而且之前的值

在 自定义组件中 调用 triggerEvent 调用父容器中的某一个方法 更新 data中的值,这个值 会通过 properties 传递给 子组件。   子组件中在2.7.2之前的版本都可以实时获取到最新的值,但是在 2.7.2版本中获取不到

2 回复

感谢反馈。问题已确认,发生在如下场景中:

  1. 父组件更新触发子组件的一些回调(包括生命周期、observer 等);

  2. 子组件在回调中直接 triggerEvent ;

  3. triggerEvent 导致父组件再次 setData ,此时,子组件不会马上接收到 setData 的结果。

我们正在设法处理这个问题。临时的解决方案是使用 setTimeout 或者 wx.nextTick 将子组件中的 triggerEvent 调用或读取 this.data / this.properties 的代码延迟一些。

回到顶部