Flutter error: The argument type 'Future<Object?> Function()' can't be assigned to the parameter type 'FutureOr<dynamic> Function(dynamic)'
Flutter error: The argument type 'Future<Object?> Function()' can't be assigned to the parameter type 'FutureOr<dynamic> Function(dynamic)'
当我将 Navigator 放入按下提交按钮时调用的异步函数的 .then
方法中时出现此错误。
await profileNotifier(false)
.createProfile(
context: context,
profileDTO: ProfileDTO(
useremail: userEmail,
profile_name: profileName,
))
.then(
() => Navigator.of(context).popAndPushNamed(HomeRoute));
future 函数在另一个文件中。
Future createProfile({
required BuildContext context,
required ProfileDTO profileDTO,
}) async {
try {
await _profileAPI.createProfile(profileDTO);
} catch (e) {
print(e.toString());
}
}
谁能帮我理解这个错误以及如何纠正它。我需要进行哪些更改才能使其正常工作?
你的 then 方法总是 return 一个值,即使你的未来是无效的,所以你需要将代码更改为:
(_) => Navigator.of(context).popAndPushNamed(HomeRoute)
更多关于“then”的信息:https://api.flutter.dev/flutter/dart-async/Future/then.html
当我将 Navigator 放入按下提交按钮时调用的异步函数的 .then
方法中时出现此错误。
await profileNotifier(false)
.createProfile(
context: context,
profileDTO: ProfileDTO(
useremail: userEmail,
profile_name: profileName,
))
.then(
() => Navigator.of(context).popAndPushNamed(HomeRoute));
future 函数在另一个文件中。
Future createProfile({
required BuildContext context,
required ProfileDTO profileDTO,
}) async {
try {
await _profileAPI.createProfile(profileDTO);
} catch (e) {
print(e.toString());
}
}
谁能帮我理解这个错误以及如何纠正它。我需要进行哪些更改才能使其正常工作?
你的 then 方法总是 return 一个值,即使你的未来是无效的,所以你需要将代码更改为:
(_) => Navigator.of(context).popAndPushNamed(HomeRoute)
更多关于“then”的信息:https://api.flutter.dev/flutter/dart-async/Future/then.html