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

Привет, У меня есть список ListView.builder есть кнопка с иконкой - добавить

в избранное
через ивент передаю id элемента, в блоке в списке моделей меняю у нужного елемента bool на обратный и делаю емит

но на экране ничего не меняется, пока я не прокручу от выбранного елемента список и не вернусь обратно - тогда вижу изменения
куда копать, чтобы сразу менялось?)

20 ответов

15 просмотров

Яснопонятно, что вы , что то перемудрили с менеджером состояний. Если хотите, что бы вам детальнее подсказали, вам придётся прикрепить screenshot

Стейт блока не изменяется сразу по клику на евент - вероятно с точки зрения блока это тот же стейт . Возможно это происходит потому что в классе стейта надо в переопределенном методе props[...] (предварительно подключив либу equatable )- добавить в список все свойстве стейта. В вашем случае объект модели в стейте. Порой эта причина не обновления стейта

Ключи на элементы списка добавь

Где ключ это ValueKey(item)

Sergiy- Автор вопроса
Pavel Kalinin
Ключи на элементы списка добавь

добавлял, и для элементов и для ListView.builder сейчас ситуация, что я меняю в списке значение bool у нужного элемента емичу новый список, емит срабатывает, но скринт не ребилдится Но, в то же время, после прокрутки ListView.builder я вижу изменения))

Sergiy
добавлял, и для элементов и для ListView.builder ...

А ты копируешь список или изменяешь?

Sergiy- Автор вопроса
Pavel Kalinin
А ты копируешь список или изменяешь?

на данный момент, мне нужно брать список из стейта (сейчас буду переписывать, если не придумаю как заставить это заработать) _changeFavorites(HomeChangeFavoritesEvent event, emit) { if (state is HomeInitialState) { List<MatchModel> newList = [...(state as HomeInitialState).matchList]; ... emit(HomeInitialState(matchList: newList)); }

Sergiy
на данный момент, мне нужно брать список из стейта...

не решение, но просто улучшение. используй List.of() что бы копировать лист в памяти

Sergiy
на данный момент, мне нужно брать список из стейта...

А покажи как ключи на элементы списка вешаешь, там точно проблема с ключами

В ключе удали matchId и всё должно заработать

Sergiy- Автор вопроса
Sergiy
передавать index&

ValueKey(homeState.matchList[index])

Sergiy- Автор вопроса
Pavel Kalinin
ValueKey(homeState.matchList[index])

передать объект в ключ? это норм практика?

Sergiy
передать объект в ключ? это норм практика?

Для этого специальные ключи есть... Такое используется когда данные не могут идентифицироваться элементарным свойством

Sergiy
добавлял, и для элементов и для ListView.builder ...

А таки ты данные элемента меняешь, значит надо уведомлять элемент на ребилд, а не с ключами возиться или что-то ещё...

Adel' Gilyazeev
А таки ты данные элемента меняешь, значит надо уве...

Ключи нужны когда ты добавляешь элементы в середину списка, Удаляешь из середины списка... А не когда сами элементы меняешь данные (так что элемент остаётся тем же)

Sergiy- Автор вопроса
Adel' Gilyazeev
А таки ты данные элемента меняешь, значит надо уве...

Тут немного не понял Как уведомлять элемент на ребилд?

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

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

читать файл максимально быстро? странный вопрос))
zamtmn
53
тоесть, указав return eax, сгенерируется никому ненужная инструкция mov eax,eax ?
Aiwan \ (•◡•) / _bot
24
я имею в виду официально интегрированный в телегу? в том плане что не сливает переписку с пользователем?
Andrey
9
Кто-нибудь решал проблему с автоматическим скроллингом к выбранной ячейке в TDBGrid в Lazarus? Проблема в том, что есть допустим 3 столбца, третий столбец виден наполовину, вк...
Дмитрий Логинов
1
А чего сейчас в моде вместо Error для эксепшенов? А то я тут внезапно узрел что он не рекомендуется :) У Try::Tiny какой-то совершенно ужасный синтаксис если надо конкретные э...
Denis F
19
Приветствуем всех! Устали без проектов? Если вы программист и хотите получать стабильные заказы, компания Elif предлагает вам недельный курс по поиску проектов и их ведению. ...
Elif
1
а зачем этот вопрос для удаления из чата?
Mёdkinson Medvezhkin
63
Чорт! Чорт! Чорт! Стала ставить через GetIt (написано же, что ручками не рекомендуется) Сломалось на дублировании моей TSkLabel. Чтож мне ее по всем проектам переименовывать в...
Катерина Свиридова
7
Привет. Сразу скажу, что на C/C++/Rust я не пишу, но тем не менее возникла потребность дебага C/C++/Rust кода. Суть: есть серверное приложение, которое периодически ведёт себ...
ninekeem 🐳
4
всем привет! углубившись в плюсы и начав изучать реверсинг понял, что без асм'а никуда со своими высокоабстрактными представлениями начал изучать механизмы асма, и не совсем п...
9
Карта сайта