Я могу держать объект в хранилище и изменять его путем клонирования и замены объекта, например:
$store = someObject; // Notifies subscribers if someObject was not already the value of the store
someObject.property = newValue;
$store = {...someObject}; // Notifies subscribers because we're assigning a new object
Однако это не работает для экземпляра класса, поскольку Прототип (методы) не копируются. Хранилище заканчивается объектом, а не экземпляром класса.
Я ищу способ вызвать уведомление после мутации, что-то вроде:
$store = someClassInstance;
someClassInstance.mutateSomeProperties();
store.forceUpdate();
Мои эксперименты, вызывающие store.set()
и store.update()
не могут уведомить подписчиков об изменении, вероятно, потому, что (как указано в документах ) это происходит только при изменении устанавливаемого значения. Я, однако, смущен этим PR , который, кажется, противоречит этому и дает мне некоторую надежду, что есть способ достичь этого.