Что касается добавленного вами фрагмента кода, я не знаю, является ли он правильным способом или нет, но вот как я использую MobX без синтаксиса декоратора в своем проекте приложения:
Создайте свойМагазин MobX, скажем MyStore.js
, например:
import {observable, action, computed, decorate} from 'mobx';
export default class MyStore {
storeMap = observable(new Map());
storeArray = observable([]);
storeBoolean = false
get storeMapSize() {
return this.storeMap.size;
}
setStoreBoolean(value) {
this.storeBoolean = value;
}
}
decorate(MyStore, {
storeMap: observable,
storeArray: observable,
storeBoolean: observable
storeMapSize: computed,
setStoreBoolean: action
});
Затем в вашем компоненте Timer.js
:
import {inject, observer} from "mobx-react";
class Timer extends React.Component {
render() {
return (<span>value from store: { this.props.myStore.storeMap.get('any_key') } </span> )
}
}
export default inject('myStore')(observer(Timer));
, и вы можете создать столько магазинов, сколько захотите, и вставить всеиз них к вашим компонентам, используя тот же метод inject
и используйте их таким же образом через this.props
, например
export default inject('myStore', 'anotherStore', 'anotherNewStore')(observer(Timer));