问题标签 [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 回答
256 浏览

reactjs - 应该在哪里放置应该运行 First ReactJs + Mobx 状态树的代码

我有一些代码可以获取用户的 ipAddres。我现在在我componentDidMountapp.js

所以我在我的 app.js 中做了它,因为它是我的根组件,我只想设置一次。如果用户从主页开始并浏览该站点,这将正常工作。

然而,有些页面可以直接加载(即您在浏览器中输入 url,它会直接进入该页面)。

由于反应生命周期从最直接的组件开始,它调用一个期望设置 ipAddress 代码的方法,但直到它到达 app.js 才设置

现在我可以将上面的代码放在每个方法中,但这会变得乏味。reactjs 或 mbox 或 mbox 状态树中是否有某种方法会首先触发?

0 投票
2 回答
1473 浏览

reactjs - Mobx-state-tree 不会在新的 Map 引用上重新渲染

mobx-state-tree 很新。每当更改我的模型以使 types.map 获得新引用时,我的组件都不会重新呈现。在我的示例中,更改模型上的字符串确实会触发重新渲染。我正在阅读我希望重新渲染的组件中的这两个属性,并用@observer.

这是一个 Stackblitz 示例:https ://stackblitz.com/edit/react-n54mud

在第 37 行注释以使其工作。

模型:

应用程序

测试组件

0 投票
1 回答
363 浏览

javascript - Mobx-state-tree:如何将 AnonymousModel 重命名为商店名称

我正在使用 mobx-state-tree,我想在出现错误时实际显示商店名称而不是 AnonymousModel。

例如:

仍然给我一个错误

但我想得到

0 投票
0 回答
1342 浏览

typescript - MobX 状态树:联合中的动作参数类型

在 MST 中,当从定义具有不同参数类型的相同操作的模型创建联合类型时,我希望能够在联合类型的实例上调用操作。不幸的是,参数类型似乎是交集类型而不是联合类型。

在下面的示例中,Item#updatePayload期望string & boolean[][],但应该接受I extends SnapshotOrInstance<typeof Foo> ? string | undefined : boolean[][] string | boolean[][]恕我直言。

我是否以某种错误的方式使用它?如果是这样,我将如何更改模型以获得我的期望?

编辑

实际上,Item#updatePayload应该(我假设)的签名如下

0 投票
1 回答
573 浏览

firebase - 尝试在 MST(mobx 状态树)操作中创建 firebase 用户

我正在尝试使用 MST 操作在 firebase 中创建新用户。

我的代码看起来像这样:

它确实创建了一个用户,但它不会提前createUserWithEmailAndPassword调用。(即它永远不会控制台“创建用户”)

我在用户上也有 onPatch 控制台,但它也不会显示用户更新。

我厌倦了安慰虚假的 api 调用

这完美地工作。

看起来有什么问题,createUserWithEmailAndPassword但我无法弄清楚。

0 投票
1 回答
176 浏览

mobx-state-tree - 具有单独 API 调用和单独存储的嵌套模型(使用自定义引用)

我想知道对属于同一模型的数据进行两次单独提取的最佳做法是什么。一个用于获取所有用户数据,另一个用于请求其特征并将其添加到每个用户。

我想我可以在用户中创建一个引用来填充数据,但我不确定如何创建自定义引用,因为它应该是一个数组。

另外,这是一个好的做法还是有其他更好的方法来获得这个结果?谢谢!

0 投票
2 回答
2289 浏览

javascript - 如何处理不一致的 mobx-state-tree 快照?

我正在编写一个电子应用程序,并将所有应用程序数据保存在一个 MST 树中。现在我注意到你时不时会遇到数据变得不一致的情况(缺少参考对象等)。虽然这可能发生在任何类型的数据库中,但我发现 MST 存在一个特殊问题:

由于我们有一个在应用程序启动时反序列化的树,然后用作单个快照,因此单个不一致将导致整个应用程序失败。我的应用程序没有一条数据可用。

关于如何处理的任何提示?

更多信息

目前,我在每次树更改(onSnapshot)时创建一个快照并将其保存在 localStorage 中。所以一个错误用例是:创建 mst 对象 -> 在树的其他部分创建引用 -> 删除 mst 对象 -> onSnapshot 被触发 -> 损坏的树被持久化。重新加载应用程序无济于事,因为树一直处于损坏状态。

0 投票
1 回答
169 浏览

javascript - Mobx-state-tree 操作在 Visual Studio 代码中不可用

虽然我的 Visual Studio 代码自动完成中列出了模型属性,但操作没有。知道如何改进吗?

视觉工作室代码自动完成不起作用

0 投票
1 回答
620 浏览

mobx-state-tree - “[mobx-state-tree] 没有匹配的联合类型”错误

在我的电子应用程序的开发版本中,我没有收到任何错误。但是一旦我尝试在生产中运行它,我的 localStorage 数据似乎就有问题。知道如何调试吗?

堆栈跟踪:

0 投票
1 回答
398 浏览

javascript - Mobx 基于计算值自动运行为真

我对 MobX 还是很陌生,我了解计算、自动运行、可观察的概念。但我正在为某种情况而苦苦挣扎。我的商店中有以下代码(我正在使用 mobx-state-tree):

现在基本上,我想loadConfigurations在计算值为真时运行一个函数。在这种情况下,我想在 renderState 为 stage3 且 containerMounted 为 true 时运行我的函数。根据我对自动运行的理解,一旦计算值发生变化,它就会触发。但是我希望我的函数在 if 语句有效时触发。

如果您有任何见解或可以帮助澄清我的任何误解,那就太好了。