Abd*_*lah 2 api get flutter flutter-dependencies
我收到此错误:在 get 方法 flutter 中,“String”类型不是“Null”类型的子类型
这是我使用的 get api 函数
Future<Stream<ServiceTypes>> getServiceTypesa() async {
final String url = 'https://test.com';
final client = new http.Client();
final streamedRest = await client.send(
http.Request('get', Uri.parse(url))
);
return streamedRest.stream
.transform(utf8.decoder)
.transform(json.decoder)
.expand((data) => (data as List))
.map((data) => ServiceTypes.fromJson(data));
}
Run Code Online (Sandbox Code Playgroud)
你可以在这里看到函数检测数据
我也看到了这个错误
StateError(错误状态:Stream 已被监听。)
和这个错误
这是我的聆听功能
@override
void initState() {
_serviceTypes = new List<ServiceTypes>();
listenForServiceTypes();
super.initState();
}
void listenForServiceTypes() async {
setState(() {
this._show_serviceTypesProgress = true;
});
final Stream<ServiceTypes> stream = await getServiceTypesa();
stream.listen((ServiceTypes serviceTypes) =>
setState(() => _serviceTypes.add(serviceTypes)));
setState(() {
this._show_serviceTypesProgress = false;
});
print(_serviceTypes);
}
Run Code Online (Sandbox Code Playgroud)
这是我做的模型
作为额外信息,您可以检查按键名称。我遇到了同样的问题,只是因为我试图获取未找到的密钥。
第一次我写了content代替,details而在我的时候API我没有details写content。
祝你有美好的一天 :)
问题很清楚,您将image类型定义为Null然后尝试将字符串传递给它,尝试更改定义..如下所示:
Class ServiceTypes{
int id;
String name;
String image;
...
Run Code Online (Sandbox Code Playgroud)
创建模型时,图像类型值为空,因此,模型是使用 Null 类型的图像创建的,但是当图像不是来自服务器的空类型时,它会给您一个错误
type 'String' is not a subtype of type 'Null' in get method flutter
Run Code Online (Sandbox Code Playgroud)
因为您的图像类型是来自服务器的 String 并且您通过 Null 对象获取值,所以使用 String 类型对象来获取字符串值或图像。
用这个
Class ServiceTypes{
String image;
Run Code Online (Sandbox Code Playgroud)
代替
Class ServiceTypes{
Null image;
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
17127 次 |
| 最近记录: |