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