使用web组件直接加载web页面时,通过if条件语句来控制web组件的显示与隐藏的时机。发现添加了if条件语句后,onControllerAttached ,onLoadIntercept,onFoucus这几个事件触发时机与预期理解不一致。
使用web组件直接加载web页面时,通过if条件语句来控制web组件的显示与隐藏的时机。发现添加了if条件语句后,onControllerAttached ,onLoadIntercept,onFoucus这几个事件触发时机与预期理解不一致。
1 回答1.1k 阅读✓ 已解决
1 回答1.3k 阅读
1 回答1.2k 阅读
1 回答1.1k 阅读
1 回答1.1k 阅读
1 回答970 阅读
1 回答943 阅读
if条件的有无,导致了这三个事件触发顺序的错乱:onControllerAttached —》onLoadIntercept----》onFoucus
直接创建和通过if else创建web的这两个生命周期顺序不同,onControllerAttached,onLoadIntercept这两个生命周期是web的。
如果是正常加载无if条件语句控制,onControllerAttached是先于onLoadIntercept调用的。但被if条件控制后,在if语句条件为false时,web组件会被销毁掉,在if条件切换到true时重新初始化web组件并绑定到初始化生成的webController上。此时的调用逻辑为:获取焦点-\> 加载URL -\> 重新生成web组件并绑定到最初的的webController上。如果伙伴的需要通过if条件语句来控制web组件的显示与隐藏的时机,建议使用visibility属性来进行控制是否隐藏。