问题标签 [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 回答
1429 浏览

reactjs - Redux 静默不渲染 connect()ed 组件

我正在使用 Redux 编写应用程序,但根本无法connect()渲染 Redux ed 组件。

该应用程序正在使用 babel、babelify、redux 和 redux-react。

在 connect() 中返回一个对象似乎也没有this.props在组件中进行修改。该debugger声明传递给connect永不开火。

这段代码有问题吗?为什么组件不渲染?为什么debugger语句从不触发?

0 投票
2 回答
480 浏览

mocha.js - 测试异步操作创建者

你能告诉我一个如何测试这个动作的例子吗?我从真实世界的redux 示例中获取动作创建者。

对不起,我的英语不好 ;(

0 投票
2 回答
3521 浏览

state - Flux vs Redux 优缺点亮点

我是 Flux/redux 数据流的新手,我试图了解它们之间的主要区别。

你能强调一下不同之处吗?比如各有优劣?

谢谢

0 投票
1 回答
1419 浏览

reactjs - 组件未安装:React-Router 1.0.0-rc1 + Redux

我有一个使用 React、Redux 和 React-Router 1.0.0-rc1 的小型原型。原型使用 Webpack 进行代码拆分。它目前使用getComponentsgetChildRoutes异步加载其他路由,如下所示:

这工作正常,直到我点击嵌套路由donations/:id,它看起来像:

当我导航到这条路线(例如/donations/123:)时,触发了路线,加载了 bundle.js 文件,并且两个console.logs 都出现在控制台中,因此我知道该路线已加载到内存中。但是,该组件未安装和渲染。

console.log 的结果:

一层深的异步路由很好,但是嵌套过去是行不通的。组件已加载,但似乎并未执行。

返回的组件用 Redux 包装,Connect如下所示:

更新:问题已解决

这个问题很简单。由于这是一个嵌套路由,Router 将嵌套组件传递给它的父级 in this.props.children,我没有检查它。将其归结为对 1.0.0-rc1 的(稀疏)文档的误解。

0 投票
2 回答
7136 浏览

javascript - React-redux,连接函数不使用新数据更新状态

我将Redux其用作Flux替代方案并React用于视图层。我的应用程序React与方法Redux绑定react-redux connect()。在运行应用程序时,它会在组件挂载并且 redux 返回正确状态时调度操作。但是redux-logger,商店已使用新状态更新的控制台中的日志,在组件中检查this.props.session时仍显示旧状态。我猜我没有connect正确使用该方法,但是我也无法定义它的问题。有谁知道发生了什么?

容器/应用

动作/Actions.js

减速器/SessionReducer.js

减速器/RootReducer

0 投票
1 回答
1753 浏览

sockets - (React/redux) 使用带有 redux 的 Sockets 仅发送更改的状态片段

我试图弄清楚如何在我的 react/redux 应用程序旁边使用 socket.io,并看看这样做时我可以优化多少。因此,在服务器上,我有一个非常基本的套接字设置,您可以在此处看到:

所以唯一不同寻常的是我只是将请求标头粘贴到操作上以供以后使用。我想尝试并实现的是这样的 -

并添加

这个想法是这将允许我遍历所有连接,然后使用该连接的套接字来调用当时的特定用户。我不知道这样的事情是否可行,并且正在寻找一些可能的反馈来处理仅发回用户特定信息的问题。只发回被动作改变的部分状态(而不是整个状态),然后让前端存储组装状态也是很酷的。任何/所有输入都非常受欢迎,谢谢!

0 投票
1 回答
8246 浏览

reactjs - React-redux 连接方法无法在道具中找到存储

我有一个应用程序结构,它主要模仿 redux真实世界的示例,但无法克服此错误:

Uncaught Error: Invariant Violation: Could not find "store" in either the context or props of "Connect(Home)". Either wrap the root component in a <Provider>, or explicitly pass "store" as a prop to "Connect(Home)".

下面是我的应用程序结构:

使成为

路由器

家庭组件

这导致出现上述错误。如您所见,我以与 redux 示例中所示相同的方式传递商店。

0 投票
2 回答
12473 浏览

javascript - 如何处理 Redux reducer 中的树形实体?

我在思考如何实现一个reducer,它的实体可以有相同类型的孩子时有点卡住了。

让我们以reddit评论为例:每个评论可以有子评论,可以有自己的评论等。为了简单起见,评论是类型的记录{id, pageId, value, children}pageIdreddit页面。

一个人将如何围绕它来建模减速器?我正在考虑让reducer成为一个地图->评论的ID,您可以在其中使用pageId.

问题在于,例如,当我们想向嵌套的评论添加评论时:我们需要在地图的根目录上创建记录,然后将其 id 添加到父子属性中。要显示我们需要获取所有评论的所有评论,过滤我们在顶部拥有的评论(例如,将作为有序列表保存在页面缩减器中)然后迭代它们,从评论对象中获取我们遇到使用递归的孩子。

有比这更好的方法还是有缺陷?

0 投票
2 回答
12221 浏览

reactjs - 为什么我的 react 组件中的 context.router 未定义?

我试图router从我的组件中访问我的,它是未定义的。这是我的router

这是容器:

最后是组件:

当我点击login按钮时,它会点击handleLogin容器中的 。在 myhandleLogin中,我的this值是undefined。我已经尝试绑定this到中的函数constructor,但它仍然是undefined

此外,当我在render函数中放置断点时,我有一个this.context.router,但它是undefined. 我怎样才能得到我的this正确,handleLogin以及如何确保我有我routercontext,但它不是undefined

0 投票
2 回答
9110 浏览

javascript - Redux 中间件未定义

运行此代码时出现“中间件不是函数”错误。

这是在 ES6 中,我正在使用 Babel 进行编译。如果你愿意,我可以发布编译后的代码,但它真的很长。

为什么我会收到错误消息?

编辑

好的,我跳进去查看了转译的 js。好像有这个功能——

并且 _reduxThunk 没有 thunkMiddleware 属性。在控制台中,当我控制台注销 _reduxThunk 时,我得到了这个

所以它看起来像 _reduxThunk IS thunkMiddleware。我想这是一个 babel 错误 - 为什么 babel 会出错?