问题标签 [mobx]

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 回答
3032 浏览

reactjs - 具有反应存储的 mobx 未反映在观察者中

与所有事情反应一样,我正在尝试做一些简单的事情,我猜我错过了一些明显的配置,我想做的就是使用一个 redux 应用程序并实现 mobx。

我的问题是我试图去路线 /user/12345

正在调用商店 - 我正在从 API 获取数据,但我得到了一些异常,第一个是来自 mobx

然后正如预期的那样,由于尚未加载商店,因此演示者中的空值正在爆炸

然后在商店本身,因为返回的 api/promise 我的用户被设置了一个 mobx 异常

我已经将@action 添加到调用 api 的 store 函数中,所以我不确定我搞砸了什么 - 在我泡泡糖和大杂烩修复之前,我宁愿有一些反馈如何正确地做到这一点。谢谢。

用户商店.js

index.js

路线-mob.js

MobApp.js

.component/userdetail/index.js(容器?)

.component/userdetail/presenter.js

如果它有点混乱,请原谅我从各种博客文章以及文档和堆栈溢出问题中拼凑出的如何实现 mobx。我很难找到一个不仅仅是标准 todoapp 的简单示例

更新

基本上,修复是以下@mweststrate 答案的组合,将操作添加到承诺响应中

}

并包括在演示者中检查我们实际上有一些东西要显示

0 投票
2 回答
449 浏览

mobx - MobX - 选择数组中的单个项目,取消选择所有其他项目?

我有以下可观察的搜索引擎数组。

用户一次只能从 UI中选择一个。因此,如果他们选择yahoo例如,雅虎将获得selected: true,而任何其他提供商都会获得selected: false

此操作处理点击:

0 投票
1 回答
410 浏览

reactjs - 为什么 MobX 不太适合具有仅附加域模型的应用程序?

MobX 的创建者 Michel Westrate 说:

MobX 适用于构建任何需要对状态模型执行类似 CRUD 操作的应用程序。它不太适合具有仅附加域模型的应用程序。

如果我理解正确,“仅附加域模型”可能是指由持续添加的数据源/列表组成的应用程序(例如 Facebook)。

他所说的“仅附加域模型”是什么意思,为什么 MobX 不适合它?

0 投票
1 回答
538 浏览

javascript - Mobx 商店更改未反映在浏览器中

api调用存储数据更改未反映在视图中后,代码如下:

store.js

应用程序.js

PasswordsTable.js

0 投票
1 回答
497 浏览

javascript - 删除数组的元素会导致多次重新渲染

我有一个 MobX 可观察数组,我想用 lodash 的remove删除多个元素。这会导致数组中的每个元素重新渲染。

如果我尝试删除每次出现的1,Rendering...为每个元素记录一次:

我怎样才能使它只重新渲染一次?

0 投票
1 回答
619 浏览

ruby-on-rails - 从 mobx-react 导入观察者会导致“Uncaught TypeError: Super expression must be null or a function, not undefined”

我正在使用rails-browserify和我的 rails 项目来编译 reactJS 应用程序。

我的节点 package.json 文件如下所示:

但是,每当我import { observer } from 'mobx-react',我得到一个

未捕获的类型错误:超级表达式必须为 null 或函数,而不是未定义

这不会发生在我导入的任何其他库中。react, mobx,react-dom全部导入正常。如果您需要任何其他详细信息,请告诉我。任何帮助表示赞赏。我真的很难过。

有问题的模块看起来像这样。我还没有在组件中使用 mobx-react,只导入了它。触发错误的是 import {observer} 行。

0 投票
2 回答
339 浏览

reactjs - 拆分组件时避免使用 dom 容器元素

我正在使用反应,我想将一个组件拆分为子组件,以优化它(我正在使用 mobX 并尝试实现一些作为此处的列表示例https://mobxjs.github.io/mobx/best/react-performance。 html )

然而,这样做似乎我被迫引入额外的 dom 元素。考虑一个 NodeComponent 来渲染一棵树

这是伪代码,我希望你明白。

如何将第一个内部 div 与递归渲染分开,而不在子级周围引入额外的包装 dom 元素(如下面的 div)?

如果我有数千个节点,这意味着有数千个额外的无用 dom 元素,而且我正在移植具有特定 dom 结构和 CSS 的现有控件,如果我想拆分它们,我必须更改它。

TL;博士; 我可以将此组件拆分为 2,以便在不需要更改 DOM 输出的情况下获得不重新渲染所有子级的 mobx 优化吗?

或者再次:为什么纯粹的优化/重构迫使我修改我的 dom 最终结果?

0 投票
1 回答
2374 浏览

javascript - MobX - 如何在商店之间进行通信?

在我的应用程序中,我有两个 MobX 存储 - store_A 用于处理用户信息(当前登录的用户等),store_B 用于处理所有用户的事件。
用户登录后,我想显示有关该用户的所有事件。如何从 store_B 中访问记录的用户信息(来自 store_A),以便正确过滤事件?
此时我必须在我的 store_b 中存储loggeduserName 数据以检索该数据...
来自我的事件存储的代码:

我想loggedUser从 UserStore 获取数据,我也将它存储在那里......

0 投票
2 回答
4306 浏览

javascript - MobX 异步反应

嗨,我在商店中使用 MobX,当计算值发生变化时,我需要进行异步反应:

我想知道使用when而不是reaction除了运行条件之外会有什么区别?

0 投票
1 回答
1355 浏览

listview - 如何在 MobX 中使用 React Native ListView?

我正在尝试使用 MobX 的可观察数组填充 ListView 以响应本机,如下所示:

但是在运行代码时,renderRow() 永远不会被调用。就像 cloneWithRows() 方法不知道如何克隆行一样。

有没有人成功做到这一点?(并且还让它表现出当狗列表中的狗的名字发生变化时,列表中的单元格将重新渲染)

更新:这里有更多信息https://github.com/mobxjs/mobx/issues/476