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

react-native - mobx 和 Redux 的优缺点是什么,尤其是在 React-Native 环境中?

最近我听到每个人都在谈论 mobx,我在生产 React Native 应用程序中使用(正在使用)Redux。

我只是想看看是否有人对两者都有经验,并且可以建议每个人在哪里比另一个人拥有优势。

0 投票
2 回答
2266 浏览

reactjs - mobx 和 mobx-react 的 Webpack 构建问题

我有一个项目使用 React 和 Mobx 和 Mobx-react。

我的项目在本地运行得很好。但是,当使用 构建时webpack -p,我会在控制台中看到一个空白屏幕,并显示以下错误:

这是我的 webpack 配置:

在我的整个项目中只有一个使用 Mobx 的文件,就是错误所指的文件,Category.jsx.

Category.jsx样本:

正如我所说,这一切都在本地工作得很好。

这里可能是什么问题?

0 投票
1 回答
455 浏览

javascript - MobX 根据已建立的 Observables 中的值创建和引用新的 Observables

在我的应用程序的一项功能中,我正在与 Firebase 同步以获取活动事件列表。这样做的主要结果意味着 observable 将被实时重复设置。这很好,但它导致了一些 MobX 麻烦。为了演示,看一下相关商店:

在这里,该subscribe函数将我的数据库的特定部分绑定到指定的 observable(setTimeout本质上做同样的事情)。我想要实现的是这样的:

  1. 状态为空,由原始存储状态指定
  2. 我的subscribe()函数更改了 的子级的值this.currentEvents,这会触发创建新可观察对象的反应,并将它们订阅到数据库中的相应路径
  3. 随着这些 observables 的变化,我的 React 组件subscribe()的功能也发生了变化。render()有关该来源,请参见下文

    /li>

这似乎应该很容易做到,但我正在努力。我做错了吗?有更好的方法吗?非常欢迎任何建议!

0 投票
1 回答
968 浏览

reactjs - 如何使用下面的文件结构访问 Mobx 商店

假设我有这个基本上包含我所有现有商店的 .jsx 文件。

用户访问.jsx

商店.jsx

索引.jsx

我想在我的组件中访问它,我该怎么做?这就是我到目前为止所拥有的。

如何访问可观察的 page_access 以及如何将商店本身注入到我的组件中?

0 投票
1 回答
3413 浏览

javascript - 如何从 mobx 对象中获取普通对象?

我定义了一个 mobx 地图如下:

然后我在editors下面添加了对象:

当我从editor以下获取对象时:

返回的对象myEditor具有一些内置函数,例如:

我徘徊着如何从中获得一个普通的 javascript 对象editor

0 投票
1 回答
515 浏览

javascript - react-mobx - 存储显示为函数而不是返回值

我正在尝试将 mobx 添加到现有项目中。该项目由 create-react 应用程序引导,弹出,然后我在其上添加了 mobx。到目前为止,这是我的商店:

从“mobx”导入{observable, action, computed}

我在索引组件中将商店传递给我的应用程序:

然后我试图在 Timer 组件中引用它:

但是没有显示消息字符串,当我在调试器(this.props.timerStore.message)中检查它时,它显示为未定义。

它也显示this.props.timerStore为一个以count,message作为参数的函数。

我究竟做错了什么?

我清除了大部分应用程序逻辑以保持示例简单。如果缺少任何需要帮助的信息,请告诉我,我会更新问题。

0 投票
2 回答
4298 浏览

reactjs - 如何检查对象是否在 Mobx 可观察数组中?

indexOf在 React 组件中使用基于对象是否在 mobx 可观察数组中来设置按钮样式。

该按钮用于收藏。它将特定列表项的对象推送到存储中称为“收藏夹”的可观察数组中。收藏夹是一个可观察的对象数组。

这是我的按钮中的 ES6 模板文字:

基本上,它是检查对象是否在数组中success,如果为 false ,则className 将是info

当收藏夹数组处于本地状态时,这非常有效。但是我知道收藏夹数组中的对象一旦进入可观察数组,它们的外观就会有所不同。我知道可观察的数组收藏夹与本地数组收藏夹不同。

但是如何测试一个对象是否在一个可观察的对象数组中呢?我尝试slice()peek()使用 findIndex 但没有骰子。

0 投票
1 回答
372 浏览

reactjs - react中动态导入的模块不会对Mobx observable做出反应

我动态地将一个反应组件(通过 webpack 的 import('module').then)加载到我的包中。问题是该组件不会对 Mobx observable 的更改做出反应。如果我以正常方式导入模块,一切正常。

查看 Mobx 开发工具,我可以看到当组件被静态导入时,当我看到可观察的变化时:

更新了 'ReviewsStore@6.profile': (ReviewsStore@6.profile) (原为 (ReviewsStore@6.profile)) 预定异步反应 'Reviews#0.render()' 反应 '$Reviews#0.render()'< /p>

相反,当我使用代码拆分时,我看不到任何渲染调用:

更新了“ReviewsStore@6.profile”:(ReviewsStore@6.profile)(原为(ReviewsStore@6.profile))

贝娄是我的测试数据代码

}

}

0 投票
1 回答
3258 浏览

typescript - Mobx - 如何使用动态表单输入跟踪深度变化?

我需要它在表格上。我的表单在数据提交中是这样的:

我的地址是对象数组,其中我有一些标准属性,我可以使用 {state:'',town:'' } 的 extendObservable 地址类型添加新的一个属性

我的问题是执行extendObservable向地址添加新属性我没有看到(观察)任何实时变化,但是如果在执行extendObservable之后我更新了状态的值,我可以看到新添加的属性。为什么我在将新属性添加到地址时看不到它?

我的商店是这样的(打字稿):

通过调用 add 或 remove 我必须更新其他属性之一,这样我才能看到我添加的新属性。当我放置新财产时如何观察它?

0 投票
1 回答
2515 浏览

javascript - 在 componentWillUnmount 上取消 mobx 自动运行功能

我的 componentDidMount 中有以下自动运行功能:

问题是另一个组件在未安装组件时更改了 this.props.data - 因此我在未安装的组件上收到 .setState 警告。

所以我想在组件卸载后删除自动运行。

我试着做:

但是自动运行功能仍然会触发。一旦组件不再挂载,有没有办法取消 mobx 自动运行?