gpt4 book ai didi

flutter - 我们应该记住闭包吗?

转载 作者:IT王子 更新时间:2023-10-29 06:39:05 25 4
gpt4 key购买 nike

我正在使用 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]);

否则可能会导致您的闭包指向以前的参数而不是新参数。

关于flutter - 我们应该记住闭包吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57656507/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com