基础库2.7.2问题反馈

发布于 7 年前作者 xiangxia14904 次浏览最后编辑 7 年前来自 ask
  • 当前 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 回复
jintao
jintao1 楼6 年前

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

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

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

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

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

oxiang
oxiang2 楼5 年前