【发布时间】:2021-11-04 13:28:01
【问题描述】:
请检查以下颤振代码
import 'package:flutter/material.dart';
import 'package:http/http.dart' as http;
import 'dart:convert' as convert;
import 'dart:io';
class UserService with ChangeNotifier {
NavLinks _navLinks = NavLinks();
late User _user;
Future<int> saveUser(User user, String authToken) async {
print(convert.json.encode(user.toJson()));
int responsetag = 0;
try {
await http.post(Uri.parse(_navLinks.saveUser()),
body: convert.json.encode(user.toJson()),
headers: {
"Accept": "application/json",
"content-type": "application/json",
HttpHeaders.authorizationHeader: "Bearer $authToken"
}).then((http.Response response) {
final int statusCode = response.statusCode;
print("RESPONSE: " + response.body);
print("STATUS CODE: " + statusCode.toString());
if (statusCode < 200 || statusCode > 400) {
throw new Exception("Error while fetching data");
} else {
Map<String, dynamic> data = convert.jsonDecode(response.body);
responsetag = int.parse(data["insertId"]);
}
});
return responsetag;
} catch (error) {
throw (error);
}
}
}
在这里我需要提取insertId,将其转换为int 并传递过去。但我总是以错误[ERROR:flutter/lib/ui/ui_dart_state.cc(199)] Unhandled Exception: Exception: type 'int' is not a subtype of type 'String'告终。
这里有什么问题?
【问题讨论】:
-
我不认为错误来自这里,你在哪里使用这个号码?错误来自 UI,我认为它是某个地方的 Text 小部件。分享该代码。
-
@Benyamin:嗯,它用在一个代码行中,除了这个
int userid = await userService.saveUser(user, authToken); -
此错误来自 UI,这意味着您已将整数值传递给期望字符串值的小部件,您应该对其使用 toString() 方法,错误来自 UI。
-
你能提供一些示例数据/响应
标签: android ios json flutter dart