问题描述
以下代码是否安全?
class SomeWidget extends HookWidget {
@override
Widget build(BuildContext context) {
final controller = useScrollController();
controller.addListener(_someCallback);
return ...;
}
}
我专门指的是addListener
。在this ResoCoder挂钩教程中,他在自定义挂钩的initHook
函数内添加了侦听器。
我知道ResoCoder编写了自定义钩子来处理scrollController ...我对控制器侦听器的行为感到更加好奇(我不知道侦听器允许和不允许什么)。我可以从中获取关于它们的任何资源都是很好的。
谢谢:)
解决方法
诸如添加侦听器之类的副作用不应直接在import os
print( len( list( filter(None,map(lambda x: x[0] if x[0].endswith('QGIS') else None,os.walk('.'))))))
内部完成。如果重新构建了小部件,则将导致再次添加侦听器
相反,您可以使用build
:
useEffect