未处理的异常:"Null"类型不是类型"ApiResponse<Map<String,动态>>"的子类型



我得到以下错误,而从服务器获取数据,但我知道这个错误不是关于我如何获取数据。这与最新的颤振更新中增加的零安全有关。我对它不太熟悉。

这里是错误输入图片描述

我试着检查一下高亮显示的行是否有问题,对我来说没有问题。

下面是server_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?

解决方案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!);
}

Slution 2:

我认为这个函数是问题所在,starConfig不接受null,基于你的代码:

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

这部分是返回null时,他唯一的工作是返回ApiResponse<Map<String, dynamic>>

await ServersHttp(context).random()

现在我相信这将工作,如果你

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

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

相关内容

  • 没有找到相关文章

最新更新