Это просто вопрос ожидания достаточно долго для ответа API. В вашем CodeSandbox сценарий завершается почти сразу после возврата вызова API, не дожидаясь, пока MobX обновит что-либо. Если вам повезет, он может закончиться достаточно быстро, чтобы увидеть какой-то вывод консоли, но, вероятно, нет.
Хитрость заключается в том, чтобы дождаться API, затем обновить хранилище, а затем прочитать вычисленное значение из него:
import { observable, toJS, runInAction, computed } from "mobx";
import axios from "axios";
class Store {
@observable observableObject = {};
}
const store = new Store();
class Store2 {
@computed get computedVar() {
return toJS(store.observableObject);
}
}
const store2 = new Store2();
console.log("Object before API call:", store2.computedVar);
axios
.get("https://jsonplaceholder.typicode.com/todos/1")
.then(response => {
runInAction(() => {
Object.assign(store.observableObject, response.data);
});
})
.then(() => {
console.log("Object after API call:", store2.computedVar);
})
.catch(console.error);