问题标签 [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.
react-native - mobx 和 Redux 的优缺点是什么,尤其是在 React-Native 环境中?
最近我听到每个人都在谈论 mobx,我在生产 React Native 应用程序中使用(正在使用)Redux。
我只是想看看是否有人对两者都有经验,并且可以建议每个人在哪里比另一个人拥有优势。
reactjs - mobx 和 mobx-react 的 Webpack 构建问题
我有一个项目使用 React 和 Mobx 和 Mobx-react。
我的项目在本地运行得很好。但是,当使用 构建时webpack -p
,我会在控制台中看到一个空白屏幕,并显示以下错误:
这是我的 webpack 配置:
在我的整个项目中只有一个使用 Mobx 的文件,就是错误所指的文件,Category.jsx
.
Category.jsx
样本:
正如我所说,这一切都在本地工作得很好。
这里可能是什么问题?
javascript - MobX 根据已建立的 Observables 中的值创建和引用新的 Observables
在我的应用程序的一项功能中,我正在与 Firebase 同步以获取活动事件列表。这样做的主要结果意味着 observable 将被实时重复设置。这很好,但它导致了一些 MobX 麻烦。为了演示,看一下相关商店:
在这里,该subscribe
函数将我的数据库的特定部分绑定到指定的 observable(setTimeout
本质上做同样的事情)。我想要实现的是这样的:
- 状态为空,由原始存储状态指定
- 我的
subscribe()
函数更改了 的子级的值this.currentEvents
,这会触发创建新可观察对象的反应,并将它们订阅到数据库中的相应路径 随着这些 observables 的变化,我的 React 组件
/li>subscribe()
的功能也发生了变化。render()
有关该来源,请参见下文
这似乎应该很容易做到,但我正在努力。我做错了吗?有更好的方法吗?非常欢迎任何建议!
reactjs - 如何使用下面的文件结构访问 Mobx 商店
假设我有这个基本上包含我所有现有商店的 .jsx 文件。
用户访问.jsx
商店.jsx
索引.jsx
我想在我的组件中访问它,我该怎么做?这就是我到目前为止所拥有的。
如何访问可观察的 page_access 以及如何将商店本身注入到我的组件中?
javascript - 如何从 mobx 对象中获取普通对象?
我定义了一个 mobx 地图如下:
然后我在editors
下面添加了对象:
当我从editor
以下获取对象时:
返回的对象myEditor
具有一些内置函数,例如:
我徘徊着如何从中获得一个普通的 javascript 对象editor
?
javascript - react-mobx - 存储显示为函数而不是返回值
我正在尝试将 mobx 添加到现有项目中。该项目由 create-react 应用程序引导,弹出,然后我在其上添加了 mobx。到目前为止,这是我的商店:
从“mobx”导入{observable, action, computed}
我在索引组件中将商店传递给我的应用程序:
然后我试图在 Timer 组件中引用它:
但是没有显示消息字符串,当我在调试器(this.props.timerStore.message
)中检查它时,它显示为未定义。
它也显示this.props.timerStore
为一个以count
,message
作为参数的函数。
我究竟做错了什么?
我清除了大部分应用程序逻辑以保持示例简单。如果缺少任何需要帮助的信息,请告诉我,我会更新问题。
reactjs - 如何检查对象是否在 Mobx 可观察数组中?
我indexOf
在 React 组件中使用基于对象是否在 mobx 可观察数组中来设置按钮样式。
该按钮用于收藏。它将特定列表项的对象推送到存储中称为“收藏夹”的可观察数组中。收藏夹是一个可观察的对象数组。
这是我的按钮中的 ES6 模板文字:
基本上,它是检查对象是否在数组中success
,如果为 false ,则className 将是info
。
当收藏夹数组处于本地状态时,这非常有效。但是我知道收藏夹数组中的对象一旦进入可观察数组,它们的外观就会有所不同。我知道可观察的数组收藏夹与本地数组收藏夹不同。
但是如何测试一个对象是否在一个可观察的对象数组中呢?我尝试slice()
并peek()
使用 findIndex 但没有骰子。
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))
贝娄是我的测试数据代码
}
}
typescript - Mobx - 如何使用动态表单输入跟踪深度变化?
我需要它在表格上。我的表单在数据提交中是这样的:
我的地址是对象数组,其中我有一些标准属性,我可以使用 {state:'',town:'' } 的 extendObservable 地址类型添加新的一个属性
我的问题是执行extendObservable向地址添加新属性我没有看到(观察)任何实时变化,但是如果在执行extendObservable之后我更新了状态的值,我可以看到新添加的属性。为什么我在将新属性添加到地址时看不到它?
我的商店是这样的(打字稿):
通过调用 add 或 remove 我必须更新其他属性之一,这样我才能看到我添加的新属性。当我放置新财产时如何观察它?
javascript - 在 componentWillUnmount 上取消 mobx 自动运行功能
我的 componentDidMount 中有以下自动运行功能:
问题是另一个组件在未安装组件时更改了 this.props.data - 因此我在未安装的组件上收到 .setState 警告。
所以我想在组件卸载后删除自动运行。
我试着做:
但是自动运行功能仍然会触发。一旦组件不再挂载,有没有办法取消 mobx 自动运行?