может есть какой-то хак, чтобы разрешить обновление виджета в любом случае, даже если прилетают те же самые объектные ссылки? Уж больно неудобно в этом дарте клонировать...
Зачем обновлять, если стейт тот же самый? Есть библиотека freezed, там есть дипкопи. Оно значительно облегчит копирование
Потому что есть внутренняя мутабельность. Объектная ссылка стейта не изменилась, но есть изменения внутри, например в какой-нибудь вложенной коллекции.
Так в этом и есть фишка. Весь стейт должен быть иммутабельным, скопировал стейт с обновленной коллекцией внутри. Блок сравнил, нашел различия, выплюнул обновленный стейт
https://github.com/felangel/bloc/issues/292#issuecomment-492745935
Да понятно, но я в своем проекте не вытягиваю каноничный ФП. Потому что тогда нужно делать иммутабельность по всем слоям, например данные между моделями гонять тоже в виде копий. Это круто конечно, но появляется куча дополнительных классов. Поэтому у меня передача DTO почти всегда происходит по ссылке, а вот BLOC получается исключение..
Это противоречит блоку... И противоречило бы Редаксу... И вероятнее всего противоречило бы "вставить название любого стейтменеджера"
Ну тут либо пойти в разрез консенсума - например убрать Equatable у стейтов, чтобы инстансы даже одного класса всегда были разными, либо все таки клонировать. А что за задача такая стоит у вас?
Делай по паттернам, и не используй готовую реализацию
Стоп, это мысль. А как убрать equitable, расширением, или просто оверрид, я не в курсе такой магии!
Готовую реализацию чего? )
Чего угодно...
Это только пример я привел и если у вас классы стейтов унаследованы от Equatable
Обсуждают сегодня