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

javascript - 如何从子状态更改父状态 - Mobx 状态树?

我正在尝试使用 Mobx 状态树在 reactjs 中创建导航。

现在我有一个带有图标列表的瘦垂直导航栏。现在我想做的是向某些菜单项添加子菜单项。当这些被点击时,导航从瘦到宽(即展开)并显示子菜单项。一旦用户点击其中一个,Nav 就会回到瘦版本。

我认为我需要的是一种方法,当在我的父商店中点击一个图标时,一个标志会设置为“展开”,但我不知道如何在点击孩子时设置它。

0 投票
1 回答
194 浏览

mobx-state-tree - Mbox 状态树中的单个对象?

如果我创建了一个商店(RegistrationStore)并且只有 1 家公司创建了我使用什么类型?

0 投票
1 回答
332 浏览

reactjs - 结构:如何使用 mobx-state-tree 表示搜索输入、搜索查询和搜索结果?

我有一个应用程序正在使用mobx-state-tree,目前有一些简单的商店:

  • Article表示一篇文章,可以是通过第 3 方 API 获取的,也可以是内部编写的
  • ArticleStore包含对文章的引用:{ articles: {}, isLoading: bool }

简单场景

此设置适用于简单的用例,例如基于 ID 获取文章。例如

  1. 用户导航到/article/{articleUri}
  2. articleStoreInstance.fetch([articleUri])返回有问题的文章
  3. ID 在渲染函数中获取,并使用articleStoreInstance.articles.get(articleUri)

复杂场景

对于更复杂的场景,如果我想根据复杂的查询获取一组文章,例如{ offset: 100, limit: 100, freeTextQuery: 'Trump' },我应该:

  1. 拥有一个全球SearchResult商店,仅链接到用户搜索过的文章
  2. 实例化一个一次性SearchResult存储,只要我需要它就可以传递?
  3. 将查询和一般 UI 状态完全排除在商店之外?

我应该补充一点,我想在页面加载之间将文章保留在商店中,以避免一遍又一遍地重新获取相同的内容。

是否有某种标准化的方法来解决这个问题?有什么例子可以看吗?

0 投票
1 回答
1761 浏览

typescript - mobx-state-tree 字面量数组

是否可以在 MST 中创建文字数组类型?它应该相当于

type Interval = ['1min', '5min'];

这是引发错误的代码示例

期望有一个论点,types.array()所以它甚至可能吗?MST 文档不走运https://github.com/mobxjs/mobx-state-tree#types-overview

0 投票
1 回答
2590 浏览

react-native - 如何在 React Native 中持久化 Mobx 状态树?

我需要在 React Native 中保留一个 MST 存储。数据很少更改。

我对使用 AsyncStorage 和 AutoRun 感到困惑。

0 投票
1 回答
822 浏览

reactjs - AXIOS Async/Await 如何最好地编写代码?

我正在使用 Axios、Mobx/Mobx 状态树 (MST) 和 Reactjs 编写我的第一个 ajax 调用。

在 MST 中,他们有一种叫做流的东西,基本上和 async/await 做同样的事情

就这么简单吗?那是我应该如何检查状态是错误还是状态是否正常?

0 投票
2 回答
2325 浏览

javascript - Mobx 状态树流。如何知道何时完成?

我正在为 UI Stuff 使用 mobx 状态树和 mobx。

现在,当我将某些内容保存到 db 时,请求完成后我想更新 ui(即我的 mobx 状态)。

我需要知道流程何时结束。

现在我看到返回了一个承诺,所以我想只是做

哪个有效,但我想知道这是否是财产方式,或者是否有另一种方式来做到这一点(异步/等待?或流程具有的一些内部事物?)

0 投票
1 回答
66 浏览

mobx - 我应该创建一个新的商店还是使用现有的商店?- Mobx 状态树?

我有公司和员工的经典例子。

现在我有一个 CompanyStore,里面有很多公司,每家公司都可以有很多员工。

现在,这种结构在我的管理部分非常有效,并且您想查看公司中有多少员工以及类似的东西。现在我不太确定,对于试图登录我的网站的员工该怎么办。

我是否在 CompanyStore 中进行登录 ajax 调用?员工模型?还是我做一个新的EmployeeStore?

0 投票
1 回答
872 浏览

javascript - 未捕获的类型错误:无法读取 React 中未定义的属性“名称”

我正在玩 Mobx 状态树。

在我建立的一个简单模型中,我收到了这个错误“Uncaught TypeError: Cannot read property 'name' of undefined”。

我正在粘贴所有代码块。

索引.js

应用程序.Js

模型/Invoice.js

项目列表.js

item.js

使用 npm 编译时终端没有错误。在 bundle.js 中,错误在这一行

我不确定为什么会发生此错误?

0 投票
1 回答
782 浏览

javascript - MobX 状态树中带有“流”的生成器语法

我在 MobX 状态树存储中执行了三个操作:第一个从 API 获取数据,第二个使用数据库中 API 的数据发送 POST 请求,第三个获取响应并将其保存到存储中。

存储只是由这些称为列表的数据结构的映射组成:

发送 GET 和 POST 请求的前两个操作可以正常工作:

但是当涉及到第三个动作时,实际上将 List 保存到 ListStore,就没有这样的运气了。我已经尝试了很多变体,但它们都不起作用。老实说,我对生成器语法不太熟悉,我什至尝试在没有生成器的情况下这样做。在这里你可以看到我的尝试:

我都尝试过.set()and .put(),但无济于事。我也尝试过使用yield并且return...似乎没有任何效果。登录的数据console.log('list in createList', list.data);看起来正确并与模型匹配(如果不正确,我会不会收到错误消息?)。没有错误记录到控制台,它只是默默地失败。

如果您能发现错误并查看应该如何编写,我将非常感激。谢谢!