我与functional_widget
一起使用该软件包flutter_hooks
。我需要为事件处理程序创建闭包,我想知道什么是正确的方法:
@hwidget
Widget foo1() {
final state = useState(0);
final onPressed = () {
state.value++;
};
return RaisedButton(onPressed: onPressed);
}
与
@hwidget
Widget foo2() {
final state = useState(0);
final onPressed = useMemoized(() => () {
state.value++;
});
return RaisedButton(onPressed: onPressed);
}
我是在节省成本还是通过使用使情况变得更糟useMemomized
?有没有更好的办法?
您可以,但这不是必需的。
另一方面,如果这样做,正确指定密钥至关重要:
final state = useState(0);
final cb = useMemoized(() => () {
state.value++;
}, [state]);
否则,可能导致您的闭包指向先前的参数,而不是新的参数。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句