Я новичок в mobx, и я хотел сделать быстрый тест Mobx, чтобы увидеть, как я могу приспособить его к моему проекту.
Когда я запускаю этот код
class Entity{
@observable version = 1;
}
let testEntity = new Entity();
let disposer = autorun(() => console.log(`Entity version : ${testEntity.version}`));
testEntity.version = 2;
testEntity.version = 3;
disposer();
Я ожидаю увидеть этот вывод
Entity version : 1
Entity version : 2
Entity version : 3
Но вместо этого я вижу только Entity version : 1
Но если я использую наблюдаемый простой объект вместо класса с наблюдаемыми свойствами, я получаю желаемоевыход.Пример:
let testEntity = observable({ version: 1 });
let disposer = autorun(() => console.log(`Entity version : ${testEntity.version}`));
testEntity.version = 2;
testEntity.version = 3;
disposer();
// this works and I see autorun firing three times instead of only the first.
Так что я подумал, что должен сделать экземпляр класса наблюдаемым.
Я использовал let testEntity = observable(new Entity());
, но это вызвало ошибку в некоторой функции .box
.
Я попробовал снова, на этот раз с let testEntity =observable.box(new Entity());
, и у меня не было ошибок.
Но на этот раз я получил этот результат Entity version : undefined
Что здесь происходит и как я могу достичьнаблюдаемые экземпляры классов?
Может быть, я неправильно следую своей проблеме.Я хочу, чтобы мои доменные объекты использовались в качестве экземпляров классов для добавления некоторой бизнес-логики и манипулирования данными внутри них.
Я прочитал статью о том, что отслеживает MOBX, а что нет, но, похоже, я все ещечто-то пропустить.