flutter 未处理的异常:类型"Null"不是类型"ApiResponse〈Map〈String,dynamic>>"的子类型

lstz6jyr  于 2023-01-21  发布在  Flutter
关注(0)|答案(1)|浏览(134)

我在从服务器获取数据时遇到了以下错误,但我知道这个错误与我如何获取数据无关。它与最新flutter更新中添加的空值安全有关。我对它并不熟悉。

以下是错误enter image description here

我试着检查突出显示的行是否有问题,对我来说还可以。

下面是servers_http.dart的代码:

ApiResponse<Map<String, dynamic>> resp = await get<Map<String, dynamic>>("detail/random");
    if (resp.success ?? false) {
      return StarConfig.fromJson(resp.data!);
    }
    return null;
  }```

**and this stars_provider.dart**

```///Initialize engine and load last server
  void initialize(BuildContext context) {
    engine = OpenStar(onStarStageChanged: onStarStageChanged, onStarStatusChanged: onStarStatusChanged)
      ..initialize(
        lastStatus: onStarStatusChanged,
        lastStage: (stage) => onStarStageChanged(stage, stage.name),
        groupIdentifier: groupIdentifier,
        localizedDescription: localizationDescription,
        providerBundleIdentifier: providerBundleIdentifier,
      );

    Preferences.instance().then((value) async {
      starConfig = value.getServer() ?? await ServersHttp(context).random();
      notifyListeners();
    });
  }```

what I need to change?
toe95027

toe950271#

溶液1:

据我所知,您正在使用从服务器请求数据

ApiResponse<Map<String, dynamic>> resp = await get<Map<String, dynamic>>("detail/random");

如果是,您需要做的就是将其更改为:

ApiResponse<Map<String, dynamic>>? resp = await get<Map<String, dynamic>>("detail/random");
if (resp?.success ?? false) {
    return StarConfig.fromJson(resp.data!);
}

溶液2:

我认为这个函数是问题所在,starConfig不接受null,根据您的代码:

Preferences.instance().then((value) async {
    starConfig = value.getServer() ?? await ServersHttp(context).random();
    notifyListeners();
});

当他唯一的任务是返回ApiResponse<Map<String, dynamic>>时,这个部分返回null

await ServersHttp(context).random()

现在这个我相信这个会有用的如果你

Preferences.instance().then((value) async {
    ApiResponse<Map<String, dynamic>> test;
    starConfig = value.getServer() ?? test.fromJson({});
    notifyListeners();
});

**注意:**我不知道ServersHttp(context).random()是做什么的。

相关问题