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

Добрый вечер, я правильно понимаю, что в блоке, чтобы обновить

элемент в листе - нужно будет перезаписать весь лист через ивент (https://bloclibrary.dev/#/fluttertodostutorial?id=bloc), что будет очень ресурсозатратно? Есть ли пути обхода таких сильных лагов?

10 ответов

19 просмотров

“Перезаписать весь лист, что будет очень ресурсозатратно” — куда перезаписать?) При обновлении иммутабельного объекта стейта вы не пересоздаете каждое поле, хотите обновить только лист — обновите только лист.

Di- Автор вопроса
Yakov K.
“Перезаписать весь лист, что будет очень ресурсоза...

Насколько это эффективно, даже если учитывать, что используется listview.builder? Других вариантов нет?

Di
Насколько это эффективно, даже если учитывать, что...

Насколько эффективно обновление только необходимого участка объекта?)

Di- Автор вопроса
Yakov K.
Насколько эффективно обновление только необходимог...

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

Di
Имеется ввиду обновление только элемента в листе, ...

Нет, ничего никуда не перезаписывается. Имеется ввиду создание обновлённого стейта с обновлённым полем списка.

Di- Автор вопроса
Yakov K.
Нет, ничего никуда не перезаписывается. Имеется вв...

В памяти list разве не обновляется полностью?

Di
В памяти list разве не обновляется полностью?

Что именно вы подразумеваете? Что каждый элемент создаётся заново? Конечно же нет)

Di- Автор вопроса

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

Di
Есть выделенное место в памяти под лист, после тог...

<String>["a", ...["b"], ...[], ...[...["c"]]] В этом примере что-то "пересоздается"?

Di- Автор вопроса

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

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

30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
Добрый день! Скажите пожалуйста, а какие программы вы бы рекомендовали написать для того, чтобы научиться управлять памятью? Можно написать динамический массив, можно связный ...
Филипп
7
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
14
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Ребят в СИ можно реализовать ООП?
Николай
33
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
Как передать управляющий символ в открытую через CreateProcess консоль? Собсна, есть процедура: procedure TRedirectThread.WriteData(Data: OEMString); var Written: Cardinal;...
Serjone
6
Всем привет! Имеется функция: function IsValidChar(ch: UTF8Char): Boolean; var i: Integer; ValidChars: AnsiString; begin ValidChars := 'abcdefghijklmnopqrstuvwxyzABCDE...
Евгений
44
Карта сайта