我想在使用Mobx进行状态管理的视图模型中使用Meteor.userId()。
即
@observable isLoggedIn = Boolean(Meteor.userId());
问题是,当我尝试执行此操作时收到此错误 “运行模板时出错:
`Error: Meteor.userId can only be invoked in method calls or publications."`
我不认为createContainer在这里适用,因为它是为React组件设计的,而这只是一个标准的es6 JS类。
我可能可以在我的主要App组件上使用createContainer,并只需在ApplicationModel或类似类型的容器中设置可登录的observable即可。但这感觉很hacky。
任何想法或解决方案将不胜感激!
谢谢!
答案 0 :(得分:0)
尝试将整个Meteo类包装在一个持久的可观察数组中:
import {observable, toJS} from 'mobx';
import {persist} from 'mobx-persist';
@persist @observable _meteo = Meteo
然后您可以在组件需要时调用状态:
const {_meteo } = props.store
_meteo.userId()
.. else查看toJS()数据!