Как не перерисовывать приложение целиком при получении контракта с полными данными - PullRequest
0 голосов
/ 26 мая 2019

Я получаю полный контракт данных из бэкэнда каждый раз, когда пользователь что-то меняет.Я делаю это потому, что проверки / расчеты выполняются на бэкэнде.Поэтому после получения я установил весь контракт с данными в root.Пример репо ниже.Дело в том, что даже если я получу точно такие же данные, Mobx переопределяет все приложение, потому что PersonWithItem зависит от Data.

Я пытался удалить observable декоратор с Data.В этом случае приложение не будет отображаться вообще.Угадай, потому что не получатель, кроме Data's не вызывается.Я также пытался использовать lodash merge для изменения исходного объекта.Проблема с lodash заключается в том, что если я получу некоторую undefined проп, он не заменит проп с значением.Поэтому мне кажется, что мне нужно написать собственное слияние, что не является хорошим вариантом.

Извлечение показано в button обратном вызове.

https://github.com/paatrofimov/mobx-state-tree/blob/demo/packages/mst-example-todomvc/src/components/App.tsx

Может ли эта проблема быть решена без явной установки каждой опоры Data?В реальном приложении мой Data - это крупный бизнес-контракт, а также универсальный.Поэтому я не могу явно установить все его свойства, потому что обычный код не знает формы Data.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...