当我请求我的 API 以在地图颤振中存储数据时出现问题



当我点击我的SwitchButton时,我将id保存在SharedPreferences中。 我恢复了这个 ID,并请求了我的 API。

因为有了这个ID,我恢复了所有技术。

但问题是,我的列表在每个 id 处重置。

编辑:


Theme theme;
List<Technology> technos = [];
class Technology {
int id;
String name;
Technology({this.id, this.name});
factory Technology.fromJson(Map<String, dynamic> json) {
return Technology(
id: json['id'],
name: json['name'],
);
}
Future<List<Technology>> getTechnologies() async {
String id = await Theme().getTheme();
String url = 'http://10.0.2.2:3000/v1/api/theme/${id}/technology';
String token = await Candidate().getToken();
final response = await http.get(url, headers: {
'Content-Type': 'application/json',
'Accept': 'application/json',
'Authorization': 'Bearer ${token}',
});
if (response.statusCode == 200) {
List technosList = jsonDecode(response.body);
for (var technoMap in technosList) {
technos.add(Technology.fromJson(technoMap));
}
return technos;
} else {
throw Exception('Failed to load technos');
}
}
}

因为在每个 API 上您都会覆盖technos因此以前的数据丢失。 您可以在该Screen上将此technos全局化,或者如果您使用BLOC方法。

全局使用List<Technology> technos = [];而不是在getTechnologies()中使用。

其余的可以添加

technos.add(Technology.fromJson(technoMap));

我编辑了我的方法:

Future<List<String>> getListTheme() async {
List<String> themes = List<String>();
final SharedPreferences preferences = await SharedPreferences.getInstance();
for (String key in preferences.getKeys()) {
if (key == 'token') {
preferences.containsKey(key);
} else {
themes.add(jsonEncode(preferences.getStringList(key)));
}
}
return themes;
}

相关内容

  • 没有找到相关文章

最新更新