问题标签 [mobx-react]

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 投票
0 回答
1531 浏览

mobx - 带有动态字段的 mobx-react-form

我们使用 mobx-react-form ( https://github.com/foxhound87/mobx-react-form ) 作为我们的表单。我们的一种形式有一个多选下拉菜单。根据选择,从表单中添加/删除字段。如何在 mobx-react-form 中进行管理?

0 投票
2 回答
2312 浏览

javascript - mobx extendObservable 不能按预期工作

我正在尝试使用extendObservable在可观察状态上添加更多属性,但它不起作用。下面是我的代码

输出是:

property我用一个对象初始化了一个商店。我想在下面添加a一个可观察的状态,但在使用方法后property我没有得到执行。我预计值 3 会被打印出来,但事实并非如此。我的代码有什么问题?它是使用方法的正确方法吗?autorunextendObservableextendObservable

0 投票
1 回答
485 浏览

mobx - 子组件调用父组件中的方法(函数)时 Mobx 丢失状态(jsFiddle 演示)

非常感谢任何帮助:

Mobx 似乎丢失了子组件和父组件之间的状态。

我在下面做了一个 Fiddle 演示。为了清楚起见,包括注释和输出。

(当前版本的 React、Mobx 和 Mobx-React)

谢谢。

JSFIDDLE 演示在这里

https://jsfiddle.net/ymp1g6qk/3/

演示的屏幕截图在这里

在此处输入图像描述

控制台输出在这里

控制台输出显示组件生命周期和事件“未分配”。

这里的示例代码:

0 投票
1 回答
976 浏览

javascript - 为什么这个 mobx-react 观察者不触发渲染?

注意,我使用的是打字稿。

在我的商店中,我指定了一个字段:

@observable public characters: {[name: string] : Types.Character} = {};

Types.Character 定义:

我有一个标记为观察者的 React 组件:

我正在更改 char.statusmg 和 char.status 属性,但观察者组件没有重新渲染。

我猜这个问题与可观察对象如何嵌套在我商店的对象中有关?我不知道。我发现掌握这种设置非常困难,而且很难找到相关信息。mobx、react 和 mobx+react 的竞争设置如此之多,以至于大多数材料在最坏的情况下是完全错误的,在最好的情况下是误导性的。

我正在使用最新版本的 Typescript、react、react-dom、mobx 和 mobx-react。

0 投票
1 回答
3799 浏览

reactjs - 为应用创建单个 MobX 商店的最佳方式是什么?

我已经使用 MobX 和 Redux 大约 6 个月了。我发现对于大多数应用程序,我更喜欢 MobX 的简单性。不过,我喜欢 Redux 的单一存储概念。我听到其他人评论说他们用 MobX 创建了一个故事,我正在尝试确定最好的方法。目前我创建了多个商店,然后将它们导入到一个商店中。

在这里,我基本上创建了单独的 store,然后将它们组合成一个 store,类似于 redux reducer 的工作方式。

还有其他/更好的方法吗?我考虑过可能将 a 商店导入到不同的文件中,并将一些方法和数据放在一个类的prototype.

0 投票
1 回答
1448 浏览

javascript - react/mobX:最佳实践

我对 React 和 MobX 还很陌生。我已经阅读/观看了很多关于 React 和 React 结合 MobX 的教程。

我需要创建一个表单,用户可以在其中选择(自动完成)产品。我正在使用 react-select 来执行此操作。当用户选择产品时,界面需要使用所选产品的位置更新另一个选择(我还没有实现,但它将使用可观察位置的选项)。

  • 是否有关于如何在反应元素和 MobX 之间建立通信的“最佳实践”?
  • “findProduct”和“findLocationAllocationData”被定义为一个动作。它是否正确?

谢谢你的帮助!

和反应的东西:

0 投票
1 回答
4764 浏览

javascript - Mobx 返回 ObservableObjectAdministration 而不是我的对象

我是mobx的新手。我想知道为什么ObservableObjectAdministration当我调用计算的 getServerUrls() 函数而不是对象时会得到。

在此处输入图像描述

下面是我的店铺。

下面是我的 App.js

访问该属性效果很好。下面的代码工作正常,将显示 ServerNameUrls.webServer 的属性值

0 投票
1 回答
1101 浏览

javascript - 如何在 MobX 中使用 React 生命周期方法?

仅使用 MobX 存储会消除常规有状态组件的功能吗?目前,我正在使用 componentDidUpdate 来访问 prevState 和 prevProps 并根据它们的值调用其他方法。如何在 MobX/React MobX 商店中访问类似的生命周期方法?

更具体地说,这是我当前的代码在我的生命周期函数之一中的样子:

我如何使用 MobX/MobX React 有效地做同样的事情?

换句话说,我如何(不使用 this.state、构造函数和生命周期方法)访问 Mobx 存储中的 prevProps 和 prevState 之类的东西?

0 投票
1 回答
1666 浏览

reactjs - 将 const 转换为反应类

如何将此代码更改为类:

我在反应路由器 4 中使用这个组件:

但我需要更改为一个类,因为我使用的是 MobX。

像这样的东西:

谢谢!

0 投票
2 回答
554 浏览

javascript - 冲突事件:onKeyPress 和 onClick

我有一个这样的:

在此处输入图像描述

使用以下代码:

虽然我有如下login()方法:

在以下情况下,没有错误,我可以登录:

  1. login用鼠标点击按钮
  2. Enter在登录按钮未聚焦时按下

但是下面的第三种情况,由于登录操作被调用了两次,给了我错误:

  1. 当我Enter在登录按钮聚焦时按下(例如登录按钮通过按键聚焦tab

我想知道我可以避免第三种情况的错误的最佳实践是什么。我查看了其他相关的 SO 问题,但我无法找出最佳实践。


我忘了提到我正在将 ReactJS 与 MobX 一起使用。