问题标签 [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 投票
1 回答
501 浏览

mobx - Mobx-state-tree 在模型上创建带有 types.identifier 字段的表单

我最近开始使用 mobx-state-tree 并且我有一个实际问题。

我有一个模型,它有一个types.identifier字段,这是资源的数据库 ID,当我查询现有的东西时,它会被填充。

但是,当我创建一个新实例时,按照Michel 在 egghead 上的示例,我需要将初始状态传递id给我MyModel.create()的初始状态,但是,只有在我将创建发布到 API 并获取结果创建的资源。

我已经使用 mobx-state-tree 搜索了一个简单的 crud 示例,但找不到一个(建议?)。

这里的最佳做法是什么?我应该做一个 `MyModel.create({ id: 'foobar' }) 并在我发布到 API 时将其清除(并在我从 API 获得响应后更新实例)?

0 投票
0 回答
596 浏览

reactjs - 将 MobX 状态树存储注入反应组件抛出错误

问题:尝试将 MST 存储注入反应类组件时出现错误:

Error: Uncaught [Error: MobX injector: Store 'auth' is not available! Make sure it is provided by some Provider

错误源于下面发布的 LoginForm 组件,并嵌套在另一个组件下(不确定这是否是问题,也就是说每个组件都需要一个<Provider>?)

组件层次结构:

一点代码:

和问题:

如果不是这样,将商店传递给子组件(不作为道具传递)的首选协议是什么?

与往常一样,提前感谢您的任何和所有输入。如果这是重复的(我找不到这个特定的错误),请标记为这样,我会相应地更新......

0 投票
1 回答
865 浏览

reactjs - Mobx-state-tree afterCreate() 在本机反应中不同步

我正在尝试通过load()afterCreate()我的UserModel. 如果我Authenticated检测到.LoginaccessTokenUserStore

但是页面在afterCreate()加载函数运行之前呈现。最终总是将我带到登录页面。

我主要关注的是 egghead.io 的这个视频教程,但我不确定为什么它在我的情况下不起作用。

我真的被困住了,任何建议都值得赞赏!

我经过商店的方式是在商店中使用Provider我的App.js.

用户模型.js

该对象LocalDB只是一个包装器,AsyncStorage用于帮助将数据解析为 json 格式。

LocalDB.js

应用程序.js

0 投票
1 回答
2509 浏览

generator - MobX 状态树生成器不允许在成功的承诺中修改状态?

通过以下代码,我收到此错误:

有问题的代码(生成器):

问题:这在生成器中是不允许的吗,是否有更好的方法来更新这个特定状态,或者它是否需要被 try/catch 包装?

一如既往地感谢任何和所有反馈!

0 投票
2 回答
3687 浏览

javascript - 错误:[mobx-state-tree] 无法解析引用 XXX 以键入“用户”

语境

我有一个由 mobx-state-tree (MST) 支持的 React 应用程序。其中一个页面进行两个并行API 调用以获取Projectssystem 列表和列表Users

然后将这两个 API 的响应作为快照应用到同一棵树中的两个兄弟节点。Project 模型的 owner 字段是指 User 模型。

我的问题是 GET 项目 API 调用通常比 GET 用户 API 调用更早完成。经典的“比赛条件”。因此,当 MST 尝试取消引用所有者值时,具有此类标识符的用户在树中不可用,并且我收到如下运行时错误:

错误:[mobx-state-tree] 无法解析引用“dtGNbVdNOQIAX0OMGaH2r2oSEf2cMSk9AJzPAf4n7kA”以键入“用户”(来自节点:/projectListStore/projects/0/owner)

问题

如何解决该错误?

请注意,使 API 调用相互依赖(awaitusers.load().then(users => { projects.load(); })不是我们项目的选项。

MST 型号

API 示例

GET https://service.com/api/users


GET https://service.com/api/workmanagement/projects?minStartDate=&maxStartDate=2018-11-24&status=Active

0 投票
1 回答
969 浏览

mobx - 如何将 mobx-react-form 与 mobx-state-tree 存储绑定

我有一个包含三个字段 A、B 和 C 的表单。我正在使用mobx-react-form来处理这些字段,因为它带有 onChange 更新和验证。我已经设置好了,当我注销时它工作正常价值观。

我将使用字段 A、B 和 C 中的值来计算将出现在应用程序中的附加值 D 和 E。

对于状态管理,我使用mobx-state-tree来创建商店。

如何将mobx-react-form字段 A、B 和 C 绑定到商店中的相应值,以便它们在更改时更新?

0 投票
1 回答
401 浏览

reactjs - 反应 mobx,组件不呈现新的 observable

我正在使用 Mobx 和 React (typescript) 从 firebase 获取一些数据并显示它。在第一次渲染时,屏幕上不会渲染任何数据,直到我更改例如选项卡以重新渲染组件。

  • 组件类:

    /li>
  • 商店类

    所以这里arrB在调用该方法后被操纵,它是一个可观察的,它在组件的渲染方法中得到解构,所以我期待arrB在重新渲染中对结果进行任何更改,但componentDidMount在调用其他操作之前什么都没有发生。

0 投票
1 回答
2920 浏览

javascript - MobX 将对象添加到可观察数组

MobX 对象到可观察数组

我无法将对象推入可观察数组并使其成为我可以迭代的东西。

起点(所有数据都通过控制台的日志):

并接受一个对象filter.options01作为:

...然后尝试推动

给我:

然后尝试将另一个对象filter.options02 推送为:

给我:

所以基本上这里有两个问题,一个是第二个推送覆盖了第一个,但更多 - 所以我希望这样的数据:

TLDR; 我将如何实现这一目标? 以可以迭代的方式将对象推入可观察数组...

切片数组对输出没有不同的影响。

一如既往地感谢所有方向,所以提前致谢!

0 投票
1 回答
971 浏览

javascript - 如果计算视图发生变化,如何调用 mobx-state-tree 操作?

基本上我想要做的是在计算视图发生变化时调用一个动作。

如果 computedValue 发生变化,我想调用 doSomething 操作。我无法控制更新计算值的内容。

知道如何实现这一目标吗?

0 投票
2 回答
1857 浏览

mobx-state-tree - 如何跨多个文件拆分 Mobx 状态树模型?

我有一个 Mobx 状态树模型已经变得太长,我想将它拆分到多个 javascript 文件中。

下面是一些代码的演示:

我想要的是在两个文件之间拆分它,例如:

您可以在此处看到我正在尝试将视图和操作移动到单独的 javascript 文件中。我希望我需要在这两个文件之间进行某种导入和导出,但我不知道该怎么做。

我知道 Mobx 状态树具有撰写功能,如下所示: https ://nathanbirrell.me/notes/composition-mobx-state-tree/

但我想要比这更简单的东西......我不想设置多个模型,我只需要能够将模型传播到多个 javascript 文件中。