Я прочитал все связанные вопросы, но моего решения нет.поэтому, пожалуйста, не делайте никаких вещей .... и будьте терпеливы, поймите проблему ...
моя проблема похожа на другую, но в случае трепетания я не могу найти решение
Мой результат GraphQL такой:
"user" : [
{
"name": "test6",
"password": null,
"lastMessageAt": null,
"profilePhoto": null,
"aboutme": null,
"status": null,
"firstLogin": false,
"blockedAt": null
},
{
"name": "asdhihgh",
"password": null,
"lastMessageAt": null,
"profilePhoto": null,
"aboutme": null,
"status": null,
"firstLogin": false,
"blockedAt": null
},
{
"name": "Anil Kumar Jat",
"password": null,
"lastMessageAt": null,
"profilePhoto": null,
"aboutme": null,
"status": null,
"firstLogin": false,
"blockedAt": null
}
]
, но во флаттере данные берутся в List _userData = (response.data['user']) as List<dynamic>;
после этой сборки ListView, используя ListView.Builder
, чем
я показываю только последнюю копию записи в общем количестве записей ... означает
name : Anil Kumar Jat
name : Anil Kumar Jat
name : Anil Kumar Jat
что-то вроде этого.
Мой код во флаттере выглядит следующим образом:
class NewChat extends StatelessWidget {
String _allUserQuery {
return """
query {
user {
_id
name
mobileNo
createdAt
status
aboutme
profilePhoto
isBlocked
}
}
""";
}
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(title:Text('Chat'))
body: Container(
margin: EdgeInsets.symmetric(vertical: 5.0),
child: Query(
options: QueryOptions(document: _allUserQuery),
builder: (QueryResult result, {VoidCallback refetch}) {
if (result.errors != null) {
print(result.errors);
}
if (result.loading) {
return Center(child: CircularProgressIndicator());
}
if (result.data == null) {
return Center(child: Text('No Data Found!'));
}
final List _userData = (result.data['user']) as List<dynamic>;
return ListView.builder(
itemCount: model.newUserList.length,
itemBuilder: (BuildContext context, int index) {
return Column(
children: <Widget>[
ListTile(
dense: true,
title: Text(_userData[index]['name'].toString()),
onTap: () {},
),
Divider(
height: 1.0,
),
],
);
},
);
},
),
)
)
}
Выводится какэто: