问题标签 [mobx-state-tree]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
3167 浏览

javascript - 如何在 Mobx-State-Tree 中有一个可为空的字符串值

我正在尝试创建一个具有可选的、可为空的字符串值的模型。我试过同时使用

当我尝试为对象设置 json 对象时,两者都会导致错误。如果我手动循环遍历 json 对象并将空内容设置为空字符串“”,则可以使用。

在路径“内容”值处转换“jsoncontent”时出错,null不能将值分配给类型:(string值不是字符串)。

0 投票
2 回答
413 浏览

reactjs - 如何从 mobx-state-tree 模型中的输入存储图像?

我正在尝试找到如何将文件存储在 mobx-state-tree 模型中的解决方案。但是 mobx-state-tree 没有类似types.file. 有谁知道如何处理这种问题?或者我必须找到另一个解决方案?

0 投票
1 回答
1063 浏览

reactjs - Mobx 状态树嵌套存储注入

我有一个使用 mobx-state-tree 的问题。如果我们有以下结构的嵌套商店

我们如何注入just userListstore。我试着这样做:

但它会引发错误

0 投票
1 回答
852 浏览

reactjs - Mobx 状态树中的通用模型?

我将拥有多个具有不同“规格”的“产品”

例子

产品

  • 相机
  • 笔记本电脑

相机规格

  • 数码相机百万像素
  • 光学变焦

笔记本电脑

  • 公羊尺寸
  • 操作系统
  • CPU 核心数
  • 显示屏尺寸
  • 硬盘大小

我将有 2 个组件

  1. 过滤器组件
  2. 搜索结果

过滤器组件将是该产品所有可用过滤器的列表。

搜索结果将是用户过滤结果时返回的结果,并向他们显示找到的每种产品的一些规格。

我正在使用 Mbox 状态树,但我不知道如何存储从服务器返回的“产品”,因为每个产品都有不同的属性。

我猜我可能会为每种类型制作一个模型

但现在我不知道如何在我的组件中访问 2 个不同的模型,因为它会与这些模型相关联。

我可以制作 1 个巨大的模型,但我对这个想法并不疯狂,因为很多属性都不会被使用。

我必须考虑的另一件事是,用户可以单击其中一个结果,该结果将转到另一个页面并显示所有详细信息。我可能会使用 MST 参考以便访问它,如果我制作所有单独的模型,我将无法做到这一点。

任何建议,对我来说,我认为我需要更多的 json 或更动态的东西,所以我不确定 MST 是否是正确的解决方案,但我不是这方面的专家,所以我想看看它是否可以使用。

0 投票
0 回答
774 浏览

node.js - Mobx-state-tree SSR 双初始化客户端和服务器

我在带有服务器端渲染的 NextJS 应用程序上使用 mobx-state-tree。仅在服务器上,我获取一个 API 来加载一些信息并添加到我的商店。但是在客户端加载之后,我的商店被清除了,因为我需要在服务器和客户端上进行实例化。那是我的问题。

我的商店:

我在客户端的组件:

我的用户商店:

我的操作 self.load(name) 正在工作,但在客户端侧载时被删除。

有人知道我如何从服务器端“保存”用户存储吗?

谢谢!

0 投票
0 回答
232 浏览

mongodb - 在 MongoDB 和 S3 中将应用程序状态存储为 JSON

我正在使用 Mobx-State-tree 、 graphql 和 Mongo DB 制作一个流星应用程序。

在应用程序中,有一个名为课程的部分,其中包含章节,而章节又包含主题。

Course Section 状态由 CourseModel 使用 mobx-state-tree 管理。因此,任何开始课程的用户的状态都由 CourseModel 管理。我将 CourseModel 的快照作为 JSON 并希望使用 Mobx 的应用快照来恢复状态。生成的 JSON 文件以字节为单位。相当小。但我希望有很多用户并且不想在 MongoDB 上增加额外的负载。

问题是在哪里保存快照?

选项 1:我可以将其存储在 S3 中,当用户进入课程时,会下载并应用 json。

选项 2:我可以将快照直接存储在 MongoDB 集合中。

你建议哪一个?

0 投票
1 回答
4730 浏览

typescript - 如何用 typescript 的接口描述 mobx-state-tree 的模型?

我已经有了一些接口,我想用这些接口来描述模型,就像下面的代码一样。types否则我必须使用of再次编写mobx-state-tree。但这不是正确的方法,有效的解决方案是什么?

0 投票
1 回答
114 浏览

mobx - Mobx 状态树入门第 2 部分

有谁知道入门的第二部分是否可用?

我可以看到有关于第二部分的注释,但实际上没有链接,也没有任何关于它的进一步信息。至少我找不到。有谁知道?

接下来在本教程的第 2 部分中,我们将了解如何使用 MST 生命周期挂钩和本地状态从 XHR 端点获取用户数据,并了解环境如何帮助处理获取端点所需参数的依赖注入。我们将使用 MobX 助手实现自动保存,并了解有关补丁和操作事件流的更多信息。

0 投票
1 回答
4721 浏览

javascript - MobX 状态树 - 模型数组不会触发更新

我有以下模型:

然后我有两个 React 组件,我用inject和组成observer

家长一(查看/页面):

孩子一:

我有一个重新渲染的问题。最初子组件不渲染任何东西。同时获取数据(动作触发自身)。但是数据不会在孩子中更新。componentWillReact不触发。更改路由后(由路由器重新渲染)视图得到更新

你有什么主意吗?我被困了几个小时。

0 投票
1 回答
3897 浏览

reactjs - 有什么方法可以不预先在 mobx-state-tree 中定义数据模型?(动态决定类型)

我希望能够不为数据模型定义类型,但在加载数据后仍然能够观察数据。我也有关系,但可以静态定义它们。文档告诉我有关冻结的信息,但我需要这些条目是可观察的。没有它,我最好还是坚持我现在所拥有的。

我在以下评论中读到了一些关于动态模型类型的内容:https ://codeburst.io/the-curious-case-of-mobx-state-tree-7b4e22d461f 但因为我还没有使用过 mst 并且没有使用 ts 没有足够的信息让我了解他的确切含义。

mst 想要我做什么:

我想做的事:

更多信息:

https://github.com/mobxjs/mobx-state-tree/issues/326#issuecomment-433906949

https://github.com/mobxjs/mobx-state-tree/pull/247