问题标签 [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.
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 获得响应后更新实例)?
reactjs - 将 MobX 状态树存储注入反应组件抛出错误
问题:尝试将 MST 存储注入反应类组件时出现错误:
Error: Uncaught [Error: MobX injector: Store 'auth' is not available! Make sure it is provided by some Provider
错误源于下面发布的 LoginForm 组件,并嵌套在另一个组件下(不确定这是否是问题,也就是说每个组件都需要一个<Provider>
?)
组件层次结构:
一点代码:
和问题:
如果不是这样,将商店传递给子组件(不作为道具传递)的首选协议是什么?
与往常一样,提前感谢您的任何和所有输入。如果这是重复的(我找不到这个特定的错误),请标记为这样,我会相应地更新......
reactjs - Mobx-state-tree afterCreate() 在本机反应中不同步
我正在尝试通过load()
在afterCreate()
我的UserModel
. 如果我Authenticated
检测到.Login
accessToken
UserStore
但是页面在afterCreate()
加载函数运行之前呈现。最终总是将我带到登录页面。
我主要关注的是 egghead.io 的这个视频教程,但我不确定为什么它在我的情况下不起作用。
我真的被困住了,任何建议都值得赞赏!
我经过商店的方式是在商店中使用Provider
我的App.js
.
用户模型.js
该对象LocalDB
只是一个包装器,AsyncStorage
用于帮助将数据解析为 json 格式。
LocalDB.js
应用程序.js
generator - MobX 状态树生成器不允许在成功的承诺中修改状态?
通过以下代码,我收到此错误:
有问题的代码(生成器):
问题:这在生成器中是不允许的吗,是否有更好的方法来更新这个特定状态,或者它是否需要被 try/catch 包装?
一如既往地感谢任何和所有反馈!
javascript - 错误:[mobx-state-tree] 无法解析引用 XXX 以键入“用户”
语境
我有一个由 mobx-state-tree (MST) 支持的 React 应用程序。其中一个页面进行两个并行API 调用以获取Projects
system 列表和列表Users
。
然后将这两个 API 的响应作为快照应用到同一棵树中的两个兄弟节点。Project 模型的 owner 字段是指 User 模型。
我的问题是 GET 项目 API 调用通常比 GET 用户 API 调用更早完成。经典的“比赛条件”。因此,当 MST 尝试取消引用所有者值时,具有此类标识符的用户在树中不可用,并且我收到如下运行时错误:
错误:[mobx-state-tree] 无法解析引用“dtGNbVdNOQIAX0OMGaH2r2oSEf2cMSk9AJzPAf4n7kA”以键入“用户”(来自节点:/projectListStore/projects/0/owner)
问题
如何解决该错误?
请注意,使 API 调用相互依赖(await
或users.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
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 绑定到商店中的相应值,以便它们在更改时更新?
reactjs - 反应 mobx,组件不呈现新的 observable
我正在使用 Mobx 和 React (typescript) 从 firebase 获取一些数据并显示它。在第一次渲染时,屏幕上不会渲染任何数据,直到我更改例如选项卡以重新渲染组件。
组件类:
/li>商店类
所以这里
arrB
在调用该方法后被操纵,它是一个可观察的,它在组件的渲染方法中得到解构,所以我期待arrB
在重新渲染中对结果进行任何更改,但componentDidMount
在调用其他操作之前什么都没有发生。
javascript - MobX 将对象添加到可观察数组
MobX 对象到可观察数组
我无法将对象推入可观察数组并使其成为我可以迭代的东西。
起点(所有数据都通过控制台的日志):
并接受一个对象filter.options01作为:
...然后尝试推动
给我:
然后尝试将另一个对象filter.options02 推送为:
给我:
所以基本上这里有两个问题,一个是第二个推送覆盖了第一个,但更多 - 所以我希望这样的数据:
TLDR; 我将如何实现这一目标? 以可以迭代的方式将对象推入可观察数组...
切片数组对输出没有不同的影响。
一如既往地感谢所有方向,所以提前致谢!
javascript - 如果计算视图发生变化,如何调用 mobx-state-tree 操作?
基本上我想要做的是在计算视图发生变化时调用一个动作。
如果 computedValue 发生变化,我想调用 doSomething 操作。我无法控制更新计算值的内容。
知道如何实现这一目标吗?
mobx-state-tree - 如何跨多个文件拆分 Mobx 状态树模型?
我有一个 Mobx 状态树模型已经变得太长,我想将它拆分到多个 javascript 文件中。
下面是一些代码的演示:
我想要的是在两个文件之间拆分它,例如:
您可以在此处看到我正在尝试将视图和操作移动到单独的 javascript 文件中。我希望我需要在这两个文件之间进行某种导入和导出,但我不知道该怎么做。
我知道 Mobx 状态树具有撰写功能,如下所示: https ://nathanbirrell.me/notes/composition-mobx-state-tree/
但我想要比这更简单的东西......我不想设置多个模型,我只需要能够将模型传播到多个 javascript 文件中。