#android #api #flutter #dart
#Android #API #трепетание #dart
Вопрос:
Я пытаюсь получить данные для отображения в виде списка, но, к сожалению, я сталкиваюсь с ошибкой, поскольку снимок возвращает пустые значения
Ниже приведен код для моего API
static Future<List<Permission>> getPermissionData() async {
String ruhusa = 'permission';
var response = await http.get(mainUrl ruhusa,
headers: setHeader(accessKey.accessKey));
List<Permission> permissions = [];
if(response.statusCode == 200){
print(response.statusCode);
Map<String, dynamic> body = jsonDecode(response.body);
// print(response.body);
for(var item in body['msg']){
Permission permission = Permission.fromJson(item);
permissions.add(permission);
// return permissions;
}
return permissions;
}
// print(permissions);
return permissions;
}
Это код, который я хочу отобразить с помощью future builder
body: FutureBuilder(
future: PermissionService.getPermissionData(),
builder: (BuildContext context, AsyncSnapshot<List<Permission>> snapshot) {
if (snapshot.connectionState == ConnectionState.done) {
if (snapshot != null) {
print("This is ${snapshot.data}");
return ListView.builder(
itemCount: snapshot.data?.length ?? 0,
itemBuilder: (context, index) {
return GestureDetector(
onTap: () {
Navigator.pushNamed(context, permissionSpecificRoute,
arguments: snapshot.data[index]);
},
child: PermissionCard(
permission: snapshot.data[index],
),
);
},
);
} else if(snapshot.hasError) {
return Center(child: Text("Oops error issues is ${snapshot.hasError}"));
}
else {
return Center(child: Text('No permissions requested'));
}
} else {
return PageLoader();
}
},
),
Когда я пытаюсь распечатать его в своей консоли, он возвращается
Это []
Любой, кто может помочь, пожалуйста, что мне сделать, чтобы снимок получал реальные данные
Комментарии:
1. Какова ценность этого отпечатка
print(response.body);
?2. он возвращает ответ от API, означает, что я получаю ответ
3. Убедитесь
Permission.fromJson(item)
, что все работает нормально, попробуйте отладить его и посмотрите, возможно, произошла ошибка синтаксического анализа, поэтому возвращается пустой массив (потому что вы уже инициализировали его как пустой массив)4. Вы уверены, что ваш цикл for
for(var item in body['msg']){
работает?5. я пытаюсь напечатать все, что находится внутри for(..), но я ничего не получаю