flutter - Flutter如何命名一个函数然后将它传递给另一个函数?
问题描述
我是 Flutter 的新手,来自 Angular / React 背景。
我正在尝试找到正确的语法来将函数存储在变量中并将该函数传递给另一个函数。
这是我的代码:
负BtnFunc 表示“预计会找到'}'”。但我看不出我错过了什么。
positiveBtnFunc 似乎工作得很好。
onPressed: () {
negativeBtnFunc() => {
RouteGenerator().hasAcceptedTAndC = false;
if (Platform.isAndroid) {
SystemChannels.platform.invokeMethod('SystemNavigator.pop');
} else if (Platform.isIOS) {
exit(0);
}
};
positiveBtnFunc() => {};
return showAlertDialog(
context,
kTermsAlertTitle,
kTermsAlertBody,
kAlertPosOk,
positiveBtnFunc,
kAlertNegCloseApp,
negativeBtnFunc
);
},
解决方案
在 dart 中,以下代码返回一个Set
. 所以两个按钮代码都是无效的。与 JavaScript 不同,除非您想返回 a或 a ,否则您不会使用 curly {}
after 。fat-arrow 之后的任何内容都被视为一个值。=>
Set
Map
// invalid ...
negativeBtnFunc() => {
RouteGenerator().hasAcceptedTAndC = false;
if (Platform.isAndroid) {
SystemChannels.platform.invokeMethod('SystemNavigator.pop');
} else if (Platform.isIOS) {
exit(0);
}
}
对于传递函数,您可以这样做:
onPressed: () {
Function negativeBtnFunc = () {
RouteGenerator().hasAcceptedTAndC = false;
if (Platform.isAndroid) {
SystemChannels.platform.invokeMethod('SystemNavigator.pop');
} else if (Platform.isIOS) {
exit(0);
}
return;
};
Function positiveBtnFunc = () {
return;
};
return showAlertDialog(
context,
kTermsAlertTitle,
kTermsAlertBody,
kAlertPosOk,
positiveBtnFunc,
kAlertNegCloseApp,
negativeBtnFunc
);
},
推荐阅读
- javascript - 我该怎么做才能只访问特定的表
- python - 如果为正,熊猫将负值与先前的值相加
- javascript - 如何使用 javascript 调用 MVC 控制器函数
- debugging - chrome 调试 cucumber-js 而不是功能
- http - 被 Heroku 服务器杀死的连接的 WebException 会是什么样子?
- c++ - 如何查找 Active Directory 中所有帐户的状态,包括锁定/禁用帐户
- multithreading - 向工作线程 C++11 抛出异常
- powerbi - Power BI - Expression.Error:我们无法将 null 值转换为 List 类型
- c# - 我有 4 个类和类属性,但我应该如何关联这些类?(一对一,一对多……)
- go - 为什么 Frame 的值表示 pc 函数中的程序计数器 + 1