gpt4 book ai didi

dart - 为什么这个回调在这个 dart 方法中显示为 null

转载 作者:行者123 更新时间:2023-12-01 16:12:04 25 4
gpt4 key购买 nike

所以我的 flutter 应用程序中有这段代码 - 这里函数 refreshState 正在由传递 lambda 的方法 foo 调用。但是在调试过程中它说回调为空。任何想法为什么会发生这种情况,因为我的回调代码没有被执行。

     void refreshState(Function callback)
{
if(isAlive) {
setState(() {
if (callback != null) {
callback;
}
});
}
}

在我的代码中的某个时刻我正在这样做

 void didPush() {
foo();
}

void foo()
{
refreshState(() { //<------------------This lambda is showing up as null in the paramter of refreshState
isBusy = true;
});
}

对于为什么此 lamda 在 refreshState 函数参数中显示为 null 有什么想法吗?

最佳答案

您在这里误解了调试 View 。它是一个返回 (=>) null 的函数 ()。你只是不执行它。

() => ...

这只是一个快捷方式:

() {
return ...
}

要执行您的回调,您需要添加括号。那将是:

setState(() {
if (callback != null)
callback();
});

关于dart - 为什么这个回调在这个 dart 方法中显示为 null,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50665463/

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