169 похожих чатов

Import 'package:flutter/material.dart'; import 'package:dt_teh/global.dart'; import 'package:flutter_secure_storage/flutter_secure_storage.dart'; import 'package:http/http.dart' as http; import 'dart:convert' show json,

jsonDecode, utf8;

const storage = FlutterSecureStorage();

List<Cards> cardsDetails = [];

class CardListPage extends StatefulWidget {
const CardListPage(this.id, this.name, {Key? key}) : super(key: key);
final int id;
final String name;

@override
State<CardListPage> createState() => _CardListPageState();
}

class _CardListPageState extends State<CardListPage> {
Future<void> fetchCards() async {
//Возвращаю с хранилища jwt в строковую переменную q
String? q = await storage.read(key: "jwt");

//Конвертирую переменную q из String в map
final Map<String, dynamic> data = json.decode(q!);

//Забираю из q токен с ключем "access" и сохраняю в переменную bearer
String bearer = data["access"];

//Создаю переменню response, которой присваивается результат запроса GET
final String urlWithParams =
'https://cp.expcard.ru/cards/list?company[]=' + widget.id.toString();

final response = await http.get(
Uri.parse(urlWithParams),
headers: {"Authorization": 'Bearer $bearer'},
);

var cardsList = jsonDecode(utf8.decode(response.bodyBytes));

setState(() {
for (Map<String, dynamic> user in cardsList) {
cardsDetails.add(Cards.fromJson(user));
}
});
//Делаю проверку статуса полученного ответа
if (response.statusCode == 200) {
} else {
// Если ответ НЕ 200, то выдаём исключение.
throw Exception('Все хуйня! Переделывай!');
}
}

@override
void initState() {
super.initState();
fetchCards();
}

@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text(widget.name),
centerTitle: true,
backgroundColor: const Color(0xFFf0b03c),
),
body: ListView.builder(
itemCount: cardsDetails.length,
itemBuilder: (context, i) {
return Card(
child: ListTile(title: Text(cardsDetails[i].number)),
margin: const EdgeInsets.all(0.0),
);
},
));
}
}

2 ответов

7 просмотров

У тебя cardsDetails глобальная переменная, поэтому у тебя остаются старые данные, перенеси эту переменную в стейт

Vladimir-Gemanov Автор вопроса

Похожие вопросы

Обсуждают сегодня

Какой-то там пердун в 90-х решил, что есть какая-то разная типизация. Кого вообще это волнует?
КТ315
49
void terminal_scroll() { memmove(terminal_buffer, terminal_buffer + VGA_WIDTH, buffer_size - VGA_WIDTH); memset(terminal_buffer + buffer_size - VGA_WIDTH, 0, VGA_WIDTH); ...
Егор
47
Всем привет! Подскажите, пожалуйста, в чем ошибка? Настраиваю подключение к MySQL. Либы лежат рядом с exe. Все как по "учебнику"
Евгений
16
А можете как-то проверить меня по знаниям по ассемблеру?
A A
132
Здравствуйте! У меня появилась возможность купить книгу "Изучай Haskell во имя добра!". Но я где-то слышал, что эта книга устарела. Насколько это правда??
E
22
Здравствуйте! Я вот на stepic решаю задачи на хаскеле https://stepik.org/lesson/8443/step/8?unit=1578 мой код import Data.List (isInfixOf) removing :: String -> [String] ->...
E
10
Камрады, кто тесно работал с vtv, хотел уточнить. Ширина column задаётся жёстко на этапе создания дерева или можно в рантайме ее менять программно (не мышкой)?
Ed Doc
10
да ладно ... что там неочевидного ? глянуть в исх-ки датасета и/или кверика чтобы понять в каком месте и как выполняется обращения к св-вам blablaSQL - минутное дело, даже е...
Сергей
7
Здесь для arm кто-нибудь кодит ?
Nothing
52
Всем привет, у меня есть сервер принимающий входящие HTTP подключения, как проверить, что подключение было через прокси или нет, есть какие то поля в заголовках по которым мо...
Кибер Бомж
8
Карта сайта