@ShamanR

Как сделать правильный трекинг изменений массивов в MobX? И как строго оттипизировать их?

Начал изучать Mobx и в процессе столкнулся с интересными юзкейсами и поведением.

Для начала ссылка на описание поведения: https://github.com/mobxjs/mobx/issues/1476
Суть - observable массив делает обсервированными и свои элементы по-умолчанию. И при попытке (то что по линку) поискать в массиве добавленный объект по ссылке мы ничего не найдём, что логично. В связи с этим возникает вопрос - как живут с этим в больших проектах с обширной кодовой базой? Каким бы не был внимательным программист, но когда-то он ошибётся и забудет про это поведение, и возникнет бага. Есть выход в виде разрешения на использование только shallow массивов, но это тоже не панацея.
Собственно, как вы с этим справляетесь в своих проектах, либо какие бест практис по этому поводу имеются?

И второй вопрос, уже по архитектурной реализации. Есть Стор, в нём лежит обсервируемый массив. По бизнес-логике, при добавлении или удалении в него объекта нужно выполнить сайд-эффект, например по добавлению чего-то в другой стор. Объекты в массив добавляются/удаляются при клике на баттон. Так вот, можно повесить на хендлер клика и добавление в первый массив, и вызов сайд-эффекта для операций над вторым. А можно наблюдать за изменением первого массива с помощью observe(listener) что выглядит более MobX-way.
Здесь хотелось бы уточнить, какую архитектуру выбрать для описанного юзкейса, и как работать с обсёрвом массивов с тайпскриптом.
  • Вопрос задан
  • 114 просмотров
Пригласить эксперта
Ответы на вопрос 1
@abberati
frontend-разработчик
Ответ на первый вопрос: поиск не по ссылке, а по идентификатору объекта. .find() и уникальный id
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

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