Mobx模型内部的Meteor.userId()

时间:2018-08-25 02:33:48

标签: meteor mobx mobx-react

我想在使用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。

任何想法或解决方案将不胜感激!

谢谢!

1 个答案:

答案 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()数据!