所以我在我的颤振应用程序中有这段代码 - 这里的函数refreshState正在被foo传入 lambda的方法调用。但是在调试过程中它说回调为空。任何想法为什么会发生这种情况,因为我的回调代码没有被执行。
void refreshState(Function callback)
{
if(isAlive) {
setState(() {
if (callback != null) {
callback;
}
});
}
}
Run Code Online (Sandbox Code Playgroud)
在我的代码中的某一点我正在这样做
void didPush() {
foo();
}
void foo()
{
refreshState(() { //<------------------This lambda is showing up as null in the paramter of refreshState
isBusy = true;
});
}
Run Code Online (Sandbox Code Playgroud)
关于为什么这个 lamda 在refreshState函数参数中显示为 null 的任何想法?
您误解了此处的调试视图。它是一个()返回 ( =>)的函数null。你只是不执行它。
() => ...
Run Code Online (Sandbox Code Playgroud)
这只是一个快捷方式:
() {
return ...
}
Run Code Online (Sandbox Code Playgroud)
要执行您的操作,callback您需要添加括号。那将是:
setState(() {
if (callback != null)
callback();
});
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2047 次 |
| 最近记录: |