Flutter 空安全迁移 - top_snackbar_flutter
Flutter null-safety migration - top_snackbar_flutter
我执行了 dart 迁移以将我的项目更新为空安全。我有几个问题需要解决,因为这是一个旧项目。
但是,有一件事一直困扰着我,想不出办法。
我正在使用 top_snackbar_flutter 软件包并将其更新为 nullsafe 版本(最新的 v1.0.2)。
我有以下代码:
Widget showTopBarErrorWidget({required context, String? messageArg}) {
showTopSnackBar(
context,
CustomSnackBar.error(
message: messageArg ??
"Error while starting the session Plans. Please try again",
),
displayDuration: Duration(seconds: 5));
}
Widget showTopBarSuccessWidget({required context, String? messageArg}) {
showTopSnackBar(
context,
CustomSnackBar.success(
message: messageArg ?? "Success",
),
);
}
此代码在多个地方被引用以查找错误,success.So希望修复此问题并消除与此小吃店相关的所有错误。
参考范例之一:
Future verifyIapPurchase({BuildContext? context, Map? body}) async {
var _data = {"valid": false};
try {
final _res = await sl<ISubscriptionService>().verifyPurchase(body: body);
return (_res != null && _res.data != null) ? _res.data : _data;
} catch (err) {
showTopBarErrorWidget(
context: context,
messageArg: err.message ?? "Failed to verify the subscription");
return _data;
}
}
我得到的错误是:
我意识到这个函数实际上是无效的,
但我需要 return 一个小部件。我尝试添加 try 和 catch 块,但什么也没做。
Widget showTopBarErrorWidget({required context, String? messageArg}) {
try {
showTopSnackBar(
context,
CustomSnackBar.error(
message: messageArg ??
"Error while starting the session Plans. Please try again",
),
displayDuration: Duration(seconds: 5));
} on Exception catch (e) {
print(e);
rethrow;
}
}
正如h8moss所说
您没有 showTopBarErrorWidget
中 return 的任何内容,因此删除 Widget return 类型并将其设置为 void
void showTopBarErrorWidget({required context, String? messageArg}) {
showTopSnackBar
无论如何都会执行,不需要 return 它或其他东西。
我执行了 dart 迁移以将我的项目更新为空安全。我有几个问题需要解决,因为这是一个旧项目。 但是,有一件事一直困扰着我,想不出办法。
我正在使用 top_snackbar_flutter 软件包并将其更新为 nullsafe 版本(最新的 v1.0.2)。
我有以下代码:
Widget showTopBarErrorWidget({required context, String? messageArg}) {
showTopSnackBar(
context,
CustomSnackBar.error(
message: messageArg ??
"Error while starting the session Plans. Please try again",
),
displayDuration: Duration(seconds: 5));
}
Widget showTopBarSuccessWidget({required context, String? messageArg}) {
showTopSnackBar(
context,
CustomSnackBar.success(
message: messageArg ?? "Success",
),
);
}
此代码在多个地方被引用以查找错误,success.So希望修复此问题并消除与此小吃店相关的所有错误。
参考范例之一:
Future verifyIapPurchase({BuildContext? context, Map? body}) async {
var _data = {"valid": false};
try {
final _res = await sl<ISubscriptionService>().verifyPurchase(body: body);
return (_res != null && _res.data != null) ? _res.data : _data;
} catch (err) {
showTopBarErrorWidget(
context: context,
messageArg: err.message ?? "Failed to verify the subscription");
return _data;
}
}
我得到的错误是:
我意识到这个函数实际上是无效的,
Widget showTopBarErrorWidget({required context, String? messageArg}) {
try {
showTopSnackBar(
context,
CustomSnackBar.error(
message: messageArg ??
"Error while starting the session Plans. Please try again",
),
displayDuration: Duration(seconds: 5));
} on Exception catch (e) {
print(e);
rethrow;
}
}
正如h8moss所说
您没有 showTopBarErrorWidget
中 return 的任何内容,因此删除 Widget return 类型并将其设置为 void
void showTopBarErrorWidget({required context, String? messageArg}) {
showTopSnackBar
无论如何都会执行,不需要 return 它或其他东西。