-
Notifications
You must be signed in to change notification settings - Fork 34
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
条件渲染会受wxs响应次数影响,两次判断结果不同界面会卡住 #205
Comments
关于为什么会不同,请参考 #203 。 首先,在实践中不应该用上述实现方式,因为 WXS 函数执行与模板更新有关,而模板何时被更新是很难控制的。或者说, WXS 函数的返回值应只取决于它的参数。 在 glass-easel 上这个问题更加明显。出于性能考虑,在执行 setData 时, glass-easel 有时甚至会跳过部分模板片段!这就是为什么 |
其实不是MT.ShowIfCount不被执行,而是每次点击在Android和Windows都上被执行了两次,但界面只显示第一次的值。因为使用的是全局变量,前后两次返回值不同,当判断结果不同且view是从无到现实就报错,界面卡住,再点击没反应。 |
我试了一下代码片段,在 android 上 IfCount 是被执行了的(有 wxs 里面的日志),但是 =5 的时候遇到了一个 bug 导致没显示出来。 (这个 bug 不是 glass-easel 的 bug 所以无法用本项目独立复现。) |
目前在启用 glass-easel 但未启用 skyline 的时候,在非开发者工具环境下, WXS 函数可能会多运行一次。 |
已确认这个 bug 不是 glass-easel 的 bug 而是小程序环境上的 bug ,已经提给那边等待修复了。 |
在Android和Windows平台上setData后wxs函数会响应两次,wx:if判断条件会受这个影响,当前后两次判断结果不同时会出错,界面会卡住。
写了一个用wx:if进行条件渲染的片段。一个按钮点击计数,计数达到5之后显示一个view。在开发工具上点击五次后会正常出现view再点消失。在Android上点两次后会卡住,view不出现,再点没反应。Windows上点一次就会卡住。
代码片段连接:https://developers.weixin.qq.com/s/kYIcWUmW7qUA
开发工具上情况:
Android上的情况,下为调试log,点两次后报错卡住,后续点击有log但界面不变:
Windows上的情况,左为调试log,点击一次就会报错卡住,后续点击有log但界面不变:
代码:
The text was updated successfully, but these errors were encountered: