首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在模型中存储非mobx状态树类型(类实例)?

如何在模型中存储非mobx状态树类型(类实例)?
EN

Stack Overflow用户
提问于 2018-01-08 09:38:39
回答 1查看 1.5K关注 0票数 0

我得到:

错误:mobx-状态树期望一个mobx状态树类型作为第一个参数,得到类HubConnection {构造函数(urlOrConnection,options = {}) { options = options got {};

当尝试这样做时:

代码语言:javascript
复制
import { HubConnection } from '@aspnet/signalr-client';
.model('MyStore', {
  connection: types.optional(HubConnection, new HubConnection('http://localhost:5000/myhub')),
})

我可以像以前一样,在React组件的构造函数中声明它。

代码语言:javascript
复制
constructor(props){
  super(props);
  this.connection = new HubConnection('http://localhost:5000/myhub');
}

但是,所有附加的均衡器也需要在组件中定义。

代码语言:javascript
复制
componentDidMount(){
  this.connection.on('Someaction', async(res: any) => {});
}

以及连接的启动/关闭

代码语言:javascript
复制
handleBtnClicked = () => {
  this.connection.start().then(() => self.connection.invoke('Someotheraction'));
}

理想情况下,我认为这属于模型和模型操作,因此react组件只是在模型上触发操作,仅此而已。

有没有办法在mobx状态树模型中存储mobx状态树类型以外的其他类型,您能以某种方式将它包装成mobx类型吗?或者这实际上不是属于mobx的东西,因此是故意的。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-01-08 10:06:19

mobx状态树模型只能定义基于MST类型的属性,这是有意的.这是因为这些类型是可快照的、可串行化的、可修补的等等,而像HubConnection这样的东西并不是可以被快照、再水化等等的东西。

可以在MST树中任意存储东西,但不能作为道具存储。相反,您可以使用挥发性态

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48147568

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档