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

javascript - redux-react 简单的你好世界

我是 redux 的新手 - 为什么不mapStateToProps被调用并且组件更新以显示“hello world”?

http://codepen.io/anon/pen/QyXyvW?editors=0011

0 投票
1 回答
323 浏览

reactjs - 在一些关于 ReactNative 和 Redux 和 Navigator 的概念上需要帮助

在这个场景中经过几次测试后,我有一些我自己无法回答的问题,所以我请求帮助澄清我的概念。

  1. Navigator 中的提供者与道具

有什么区别以及设置 Navigator 并将 store 传递到 React Native 应用程序的不同场景的最佳方法是什么

MainContainerComponentreact-reduxconnect函数内连接,将 Props 和 Actions 传递给props.

是更好地访问上下文还是道具?

对比

  1. 在组件场景中,(不包装为智能容器)如何设置有关redux 状态更改的侦听器或让我将组件状态绑定到 redux 状态。

传递state(Redux 存储) 和push in时actions一样,然后派发动作并正确执行,状态是更新,但是......不会重新渲染场景。passPropsnewSceneNavigatornewScene

我是否必须将状态组件绑定到 Redux 状态才能看到屏幕上反映的更改?

在这种情况下是否有任何关于最佳实践的示例?

  1. propsvsconnect在同一Scene

同样Scene,从Top 到 Down 组件,这是传递redux state(不是谈论component state)作为将组件包装在一个'smart' containerwith ' connect' from中的最佳方法react-redux,或者传递洞方案为props.

0 投票
2 回答
13540 浏览

reactjs - 来自组件的 React-Redux 调度操作

我正在尝试通过单击按钮来调度一个动作。

我已经创建了我的组件。我将它连接到由 Provider 向下传递给组件的商店。但我收到一个错误:

未捕获的 TypeError:this.doSearchClick 不是函数

我有我的进口:

我的组件:

不确定这是否需要:

最后是connect东西:

在顶层,我通过 Provider 将商店向下传递:

我还尝试通过上下文访问商店(不起作用并且可能已弃用)以及使用@connect属性(给我一个类似的错误)来实现这一点。

0 投票
2 回答
726 浏览

redux - ES5 中最简单的 Redux-React 应用程序:为什么不传递 props?

我正在尝试构建最简单的 Redux 应用程序。我有一个初始状态,我创建了一个 Redux 存储,我将存储传递给 ReactRedux.Provider,并且我的应用程序作为 Provider 的子级。

但是,我的 APP 视图,写成一个无状态的功能组件,没有收到任何道具。(如果我在方法中使用React.createClass和检查来编写我的 APP 视图,情况也是如此。)this.propsrender

我究竟做错了什么?

0 投票
5 回答
135795 浏览

javascript - 如何在 Redux 中显示一个执行异步操作的模态对话框?

我正在构建一个需要在某些情况下显示确认对话框的应用程序。

假设我想删除一些东西,然后我会分派一个动作,deleteSomething(id)这样一些减速器将捕获该事件并填充对话框减速器以显示它。

当这个对话框提交时,我的疑问就来了。

  • 这个组件如何根据分派的第一个动作来分派正确的动作?
  • 动作创建者应该处理这个逻辑吗?
  • 我们可以在 reducer 中添加动作吗?

编辑:

为了更清楚:

所以我试图重用对话框组件。显示/隐藏对话框不是问题,因为这可以在减速器中轻松完成。我要指定的是如何根据在左侧启动流程的操作从右侧分派操作。

0 投票
1 回答
1295 浏览

javascript - 应用 API 响应转换的最佳位置

在异步操作创建器中,我从服务器获取数据。对于我的用例,数据的格式不是很好,我需要对其进行转换以在 UI 中使用它。

问题:我应该

  1. 在使用转换后的数据发送成功操作之前转换数据?

    /li>
  2. 使用原始数据发送成功操作并将其存储为,并在内部进行转换mapStateToProps

  3. 使用原始数据发送成功操作并在 reducer 中进行转换?

1.中,数据会在我需要的时候进行转换,在我看来它解耦了 API 数据格式和我的 Redux 存储。但是转换逻辑在数据获取操作中。

2.中,异步操作创建者保持简单,完全没有逻辑,映射发生在 UI 层。但这意味着我需要使用 reselect 之类的东西来优化它,因为mapStateToProps每次渲染都会调用它。

3.中,异步操作创建者保持简单,完全没有逻辑,但操作与 API 数据格式耦合。

我会选择1。(无论如何都要对转换进行单元测试),但我并不完全满意。有什么建议吗?谢谢 !

- 编辑:由于这个问题是一个自以为是的答案,我有点在这里回答我自己。由于评论中所述的所有原因和答案之一,我将选择1. 。

0 投票
3 回答
295 浏览

reactjs - 构建 React/Redux 应用程序

使用 redux 和 react 制作单页应用程序,首先要做的是什么?先用redux创建我的状态逻辑还是让所有组件先反应?

0 投票
1 回答
69 浏览

react-native - Redux减速器抛出间歇性错误

我有一个在 IOS 模拟器中运行的本机应用程序。在初始化期间,它读取 Parse 数据库并使用以下 reducer 填充 redux 数据存储:

当我重复运行该应用程序时,它大约有 3 次失败,并出现以下 redux-logger 错误:

请注意错误如何指出 itemId 为空,但该操作实际上包含非空 itemId。下一个状态似乎是正确的,但应用程序在遇到此错误后无法恢复(不幸的是,它不会抛出带有附加信息的红屏)。

我还捕获了相同的 redux-logger 事件,显示相同的操作而没有任何错误:

关于如何处理的任何建议?

0 投票
1 回答
625 浏览

reactjs - 路由处理程序应该使用容器还是展示组件?

例如:

启动我的应用程序时,我创建了一个连接组件,其中包含一些用于调度操作的回调,并呈现单个展示组件,该组件又包含许多其他构成“屏幕”(或“场景”)的展示组件。

但后来我意识到其中许多组件都进行了不必要的渲染,因为它们中的每一个都需要状态的不同部分。

那么,解决方案是什么?也许将一个呈现许多容器的单个表示传递给路由处理程序,并且每个容器都连接到它关心的状态?那么,如果两个组件使用相同的状态部分,那么它们是否应该是不同的容器呢?而且,如果我采用这种方法,是否有一个文件夹“视图”来存储这些路由处理程序?

你是怎么处理的?

谢谢!

0 投票
4 回答
2042 浏览

javascript - Redux:是否只允许来自 reducer 函数的同步调用?

我有一个 reactJs 应用程序,现在我正在学习 Redux 以将其用作 Flux 实现。

我创建了一个商店,并创建了我的第一个减速器功能,但现在我有一些问题浮现在我的脑海中,请帮助我理解。

如您所见,我有一个名为“FIND_PRODUCTS”的操作,它基本上是从后端服务获取数据。要调用这个后端服务,我基本上使用异步 ajax 调用,所以基本上我面临的问题是在我的后端调用完成之前从 reducer 函数返回状态,所以状态没有正确更新,订阅者商店收到不正确的数据。如果我切换到同步调用,这个问题就解决了,但是,我得到的第一个警告是应该避免同步调用,因为它可能会降低用户的体验(性能)。

所以我的问题是,我们只能从 reducer 函数中同步获取数据吗?获取数据应该发生在 reducer 函数中还是有其他方法可以做到这一点?如果有,那是什么?

这种拥有单个对象树来维护状态的 redux 模型是否适用于大型应用程序?如果我有 1000 个动作,我的减速器功能中的开关将是巨大的!我们怎样才能避免呢?

谢谢!!