Как мутировать объект в store (redux), на который есть ссылки?
По мере углубления в react-redux возникли следующие вопросы:
в-1: Как можно изменить значение полей объекта (экземпляра класса), хранящегося в store, сохранив при этом корректность ссылок на него из других объектов (также хранящихся в store).
в-2: Существуют ли паттерны, пакеты npm на этот случай?
При этом имеются такие соображения:
с-01: Как я понимаю, для того, чтобы сохранить иммутабельность, необходимо деструктурировать объект (глубоко) и собрать заново, но ведь при этом потеряется ссылка на него из других объектов?!
с-02: Чем грозит прямое изменение значения поля объекта? Только тем, что store не заметит изменения? Очевидно, так и происходит. Однако это обходится изменением соответствующего флага в store (который также передается в mapStateToProps с массивом содержащим соответствующий объект; mapStateToProps срабатывает на изменение флага и заодно обновляет props'ы) и все прекрасно срабатывает! Или, все же, - это непозволительный костыль?
с-03: Или можно переструктурировать мутируемый объект (который также включает ссылки на другие объекты), создав новый, а затем просто напрямую присвоить его значению, хранящему ссылку на предыдущий (previous) объект в store? Но это, кажется, еще большее нарушение принципа иммутабельности?
Спасибо отреагировавшим и, особенно, ответившим!
P.S. Оказалось, задача (см. выше) легко решается на MobX!