问题标签 [react-redux]

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

redux - Redux 和在 reducer 中访问不同的 reducer,怎么做?

所以,我有一个应用程序,它有多个减速器,因此有多个关联的动作创建者。

有时我的一个 reducer 会更新状态(因为编辑),因此,我必须确保其他 reducer 看到这个更新并相应地调整它们的状态。

把它想象成用户选择了“运动鞋”,这个状态管理在一个叫做 productsReducer 的 reducer 中。因此,当用户通过应用程序流程时,他们会获得与之关联的couponsReducer ......但用户可以随时“编辑”,所以如果他们随后编辑“运动鞋”并说,选择另一个制作人,我必须能够实时更改 couponsReducer,因为进度模式需要反映这一点。我可以通过流到优惠券页面来做到这一点,因为在那个页面上我只是协调 componentWillMount 上的数据......但问题是我有一个进度模式,在进入优惠券页面之前,用户可以打开进度模式...这里会出现不匹配...

长篇大论我知道,我只是想解释一下我的情况。

所以,我希望能够从 productsReducer 中调用“其他减速器”或它们的动作创建者。

中间件在这里是否合适,我在其中嗅探某个“action.type”,如果我看到它,我可以调度其他 action.type,或者有没有办法从 productsReducer 中调用动作创建者?

importing: import * as coupons from './couponsActions' 以及我需要的任何其他操作似乎都不合适。

0 投票
2 回答
1774 浏览

reactjs - Redux 中的 ImutebleJS - reducer 出现错误“state.push 不是函数”

嗨,我尝试开始学习在 React 中使用 ImmutableJS。但我愣住了。当我尝试在减速器中使用 List 时,出现此错误“state.push 不是函数”

这是mi代码:

我不明白哪里有问题

0 投票
1 回答
24334 浏览

reactjs - mapStateToProps 必须返回一个对象。而是收到了 Map {}?

您好,我使用不可变映射作为状态,当我尝试 maspStateToProps 时出现此错误。

Uncaught Invariant Violation:mapStateToProps必须返回一个对象。而是收到了 Map {}。

这是我的代码:

零件:

减速器

0 投票
1 回答
507 浏览

javascript - 使用 Browserify / Webpack(ES6 或 CommonJS)填充 javascript 资产

如何使用 browserify 或 webpack 正确填充 javascript 而无需额外文件?

让我们以使用 react 或 react-redux 为例。我在 package.json 中有这个配置:

在我的项目中,我将 react-redux 与 line 一起使用import { createStore, applyMiddleware } from 'redux';,并添加了 react-redux 作为依赖项。当我编译我的项目时,它会生成一个大约 20K 行的 javascript 文件。

问题是,当我填充 react-redux 时,通过使用 react-redux 的 cdnjs ( https://cdnjs.cloudflare.com/ajax/libs/react-redux/4.4.0/react-redux.js) 并将其添加到 browserify-shim 配置中,我的项目仅使用大约 2K 行,而仅 react-redux js 文件仅使用大约 700 行(该项目仍然有效!)。

为什么会发生?我可以不在 browserify-shim 中添加 react-redux 但仍然只在我编译的项目 javascript 中添加 700 行而不是 18K 行吗?

这里实际发生了什么魔法,魔法实际上是如何起作用的?

0 投票
1 回答
496 浏览

reactjs - 不是来自商店的 mapStateToProps 和属性

将不是来自商店的属性包含在 中是否是个好主意mapStateToProps

例如

0 投票
1 回答
524 浏览

redux - Redux 状态和组件属性未定义,直到 ajax 解析

我的组件通过具有以下功能的道具获取一些属性:

我在同一个组件中使用 ajax 获得了状态关键字:

我的组件被渲染了两次。首先,在 ajax 解析之前,所以在我的渲染方法中我得到了未定义:

哪个是解决它的正确方法?我改成componentDidMount没有componentWillMount成功。

现在,基于现实世界的例子,我已经用一个空对象初始化了关键字状态:

我的减速机:

我的行动:

全部基于真实世界的 redux 示例

我的解决方案

给定关键字实体的初始状态。我通过 ajax 得到这样的 json: {'locale': 'en', 'keywords': ['keyword1', 'keyword2']} 但是,当我使用带有语言环境的 normalizr 作为 id 时,为了缓存结果,我的初始状态正如我在减速器中描述的那样:

如果我们有多种语言,我不喜欢的是初始,如果我们添加另一种语言(例如 fr),也要记得修改它。在这个

应该:

0 投票
2 回答
630 浏览

reactjs - 保持 redux 和 react-router 同步

我正在开发一个 react (0.14) + redux (3.3) + react-redux (4.4) + react-router (2.0) 应用程序,它包含三个PostsLists组件:包装这些组件:PostBlog

到目前为止,我的 redux 状态只是一系列博客文章:

路线是

/posts仅显示at PostLists,同时显示 on /posts/:id Post(它将是 的子级Blog)。帖子列表Links to /posts/:id

Blog将在挂载时从 HTTP api 获取博客文章,因此如果加载,例如,/posts/1 Post可能会在有要显示的文章之前挂载。

我的问题是关于管理当前的活动帖子。我最初的想法——我仍然很喜欢——是current_post在该州拥有一个字段:

但是,例如在加载时/posts/1,谁应该负责更新current_post(以确保Post在更改时重新加载的方式)?如果Post是一个容器并且我mapStateToProps曾经拥有过,它会在更改current_post时重新渲染吗?current_post

另一种选择是检查props.params.id然后Post找到正确的帖子,但这似乎有点脏。人们通常如何构建这样的应用程序?

0 投票
1 回答
249 浏览

javascript - Redux 动作创建者在另一个内部调用

我在 Redux 中使用鸭子,但这应该与问题无关。我在同一个文件中有几个动作创建者,我想从另一个中调用一个(希望不必为下面的 SWITCH 中的每个 CASE 双重调度):

打开工作正常,但关闭功能永远不会被触发。有没有办法从 open 函数中调用 close 函数,而不需要对 open 函数的 SWITCH 中的每个 CASE 进行双重调度?

通过双重调度,我的意思是......

如果可能的话,我只想调用一次关闭,然后返回指定的打开。

蒂亚!

0 投票
2 回答
8119 浏览

javascript - 通过上下文传递商店不能在基于 connect() 的场景中工作

编辑:摘要-我的问题的最初原因实际上是一个错字:由于大写的“G”而无法正常工作。

但是,善良的回答者不仅解决了错字,而且解决了我采用的方法中的错误前提 - 如果您也使用 Provider使用 connect 传递商店,他们的答案与您相关。我已经更新了问题的标题以反映这一点。


我正在尝试按照令人敬畏的 redux 视频<Provider>中的说明进行操作,但是因为使用react-redux传递商店而感到悲痛。

我有一个根组件:

还有一个尝试使用商店的演示组件:

我得到“未捕获的类型错误:store.GetState 不是函数”

商店来自这里:

并在这里创建:

(不是我的代码,一个支持 react native 和浏览器客户端的框架,我正在开始工作)

我错过了什么?


我从视频中复制了这个 - 请注意,AddTodo 组件没有使用 connect()“包装”:

0 投票
1 回答
472 浏览

reactjs - 动态子注入和 Redux 绑定

我们正在尝试将动态子代注入到使用 React-Redux 和 Redux 的 React 应用程序中,并且遇到了绑定子代道具的问题。我已将问题提炼为以下示例代码 ( JSFiddle )。问题是原始渲染元素更新得很好,但动态注入的部分没有。奇怪的是,更新是在 redux 存储中获取的,并且正确地馈送到了 props。