问题标签 [redux-store]

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

reactjs - 同步多个 redux store 的最佳实践

我们有一个跨多个团队管理的应用程序,我们希望通过使用微前端方法在应用程序之间创建灵活性和隔离性,每个应用程序都有自己的商店。

一些应用程序使用相同的数据,我们希望减少从服务器获取的重复数据的数量。

我知道在这种情况下听起来我们应该使用一个商店,但是选择了所有准备好使用多个商店。

在商店之间同步数据的最佳方式应该是什么以及如何?

几点:

  • 所有数据均来自我们的后端服务
  • 数据结构相同,但并非所有应用程序都使用相同的数据,有些应用程序使用数据的子集
  • 为了减少 API 调用的重复,我们希望“小型存储”能够同步来自“主”存储的数据
0 投票
2 回答
640 浏览

react-admin - 访问反应组件之外的全局存储?

是否可以在 react-admin 中访问react 组件之外的全局存储?
你在导出你的 redux 商店吗?
就像是

0 投票
1 回答
154 浏览

javascript - 将基于 Promise 的 React 应用程序转换为 redux-saga:如何设置 React 组件变量?

我是 redux-saga 的初学者,作为一项任务,我想我会尝试将现有的大型 React 应用程序从 Promises 转换为 redux-saga。我正在取得一些进展,但我遇到的一个问题是,当我使用 Promises 时,我能够根据承诺是履行还是拒绝来设置组件局部变量。现在看来我只是将请求“移交”给 redux-saga 并且永远不知道(在调用站点中)它是否完成,现在我不知道(在我的组件中)它是否成功。

例如,假设我有这个基于 Promise 的调用来获取我用户的游戏

如果我的承诺成功, 我在这里设置标志this.needToUpdateGamesFlagFromSocketIO——以及一个变量。sessionStorage

现在,据我了解,我会将其转换为

这很好用。如果有错误,将从 saga 发送到商店,我的组件将反映这一点。

但是我该如何处理本地标志和会话存储呢?我还需要将这些添加到商店吗?这似乎是一种混乱的方式,除非我为每个组件都有一个单独的商店,每个组件都有一个本地商店,这看起来也很混乱。我在这里看到了一些关于类似主题的讨论,https://github.com/redux-saga/redux-saga/issues/907,但似乎没有答案。我确定我错过了处理所有这些的“redux 方式”,因此欢迎任何指导。

0 投票
3 回答
4297 浏览

reactjs - 我应该使用 Redux store.subscribe() 还是用 react-redux 包装我的应用程序?

我已经看到了这两种方法:在这个例子中,取自 Dan Abramov 的一门课程,他正在使用这种方法:

Redux 中的 store.subscribe() 函数允许添加在调度操作时调用的侦听器。

另一个示例中,这是来自 Redux 文档的示例:

不使用 store.subscribe ,而是将整个 App 包装在一个<Provider>组件中。

这两种方法有什么区别?似乎他们在做同样的事情,那就是确保 App 具有最新版本的状态。

如果我用 包装了我的应用程序,我可以/应该使用 Store.subscribe<Provider>吗?

0 投票
1 回答
1440 浏览

redux - 拆分 reducer 在 redux 中对同一片数据进行操作

我有一个形状像这样的商店:

以 开头的键W_是保修,以 开头的键O_是选项。

对于每个保修,我都有一个或多个与之相关联的选项,其中的关系采用user.warranties以下形式:warranty => [options].

为了实现它,我正在像这样组合我的减速器:


现在,“问题”是USER_WARRANTYUSER_OPTION动作都由同一个reducer处理,因为:

  • 添加选项时,我需要将其推送到正确的保修条目。

  • 相反,当我添加保修时,我需要使用其默认选项填充它。

  • 最终,它们对同一片数据进行操作

因此,warrantiesreducer 必须对这两个动作做出反应,如下所示:

我想把它分成两个减速器,warrantiesoptions,但仍然让它们在同一个数据片上运行。

理想情况下,我会像这样组成我的根减速器:

magicalCombine我很难找到的功能在哪里。


我试过reduce-reducers了,但看起来第二个减速器(options)实际上从未到达过,而且我实际上不确定它,因为我不是试图达到平坦状态,而是实际上在同一个键上操作。

0 投票
0 回答
2281 浏览

redux - 错误:您可能无法在 reducer 执行时调用 store.getState()(不是开发工具或记录器问题)

我试图禁用 Redux 开发工具和记录器,它不是开发工具或记录器问题。尝试更改中间件的顺序,也不起作用。

行动

零件

减速器

如果有人有任何建议,请说,我在这个问题上停留了好几天。我尝试了很多东西,并弹出相同的错误。完整的错误描述:

0 投票
1 回答
1230 浏览

reactjs - 将 redux 配置为在所有浏览器上显示无法正常工作

我按照官方文档中的说明进行操作;我的应用在 chrome 中运行良好,指向localhost:3000. 但是,现在我遇到了一个问题,因为似乎如果浏览器没有 Redux 扩展,它将无法工作。根据文档,我写了:

我错过了什么吗?似乎其他人也遇到了同样的问题,并且每个代码库的解决方案似乎都是独一无二的。


编辑:我也试过这个解决方案,但我得到一个错误TypeError: _store__WEBPACK_IMPORTED_MODULE_12__.default.dispatch is not a function


编辑 2:在 chrome 隐身模式下(未启用 redux 开发工具扩展),我遇到了错误,

同样的错误在 Firefox 中。


我的package.json


编辑3:

实施以下建议后的新错误:

0 投票
2 回答
999 浏览

reactjs - 如何更新 redux 存储中的对象?

随着用户在应用程序中的进展,我想一个接一个地在 redux 存储中的对象中添加项目。因此,我想在商店中添加商品而不删除商店中以前的商品。

请参考以下代码:

减速机代码:

动作代码:

调度调用的代码:

但是,似乎只在商店中添加了最后一个项目,即航空公司,并且以前的项目没有保留。

请帮忙!

提前致谢。

0 投票
2 回答
1342 浏览

javascript - Extract Redux Store/State as Selector

Currently I'm having to reconfigure my store to create selector. Is there a better way to do this.

#xA;
0 投票
2 回答
49 浏览

reactjs - 动作被触发,但存储值未更新

动作触发但存储未更新,当动作在单个对象中时动作不起作用,带有返回方法的单独动作起作用

动作.js

order.js

减速器.js