Ответ
Патчить старые объекты в MobX можно, но с осторожностью. Основные риски:
- Реактивность - если пропустить
@observableполя, MobX не отследит изменения. - Иммутабельность - прямое изменение вложенных объектов нарушает принципы MobX.
Лучше использовать extendObservable или observable с merge:
// Безопасный патчинг
const patchedUser = extendObservable(existingUser, {
newField: 'value',
updatedField: 'new value'
});
// Или через observable
const updatedUser = observable({
...existingUser,
...updates
});
Для сложных структур предпочтительнее создавать новые наблюдаемые объекты. Всегда проверяйте, что изменения правильно триггерят реакции.