问题标签 [redux-actions]

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

reactjs - 没有从 redux thunk 获取同步数据

动作创造者

减速器

地图组件

app.js根文件

这里我的问题是当我从我的地图组件调用isPickEmpty()时,它会调用动作创建者this.props.pickup(false)(我还检查了redux-devtools它显示错误值)然后我正在安慰选择状态(其中存储在 componentWillReceiveProps(nextprops))所以它显示默认值而不是false
但是当我安慰它里面的值 setTimeout(() =>{console.log('sdkjlfjlksd',this.state.pick) }, 3000);时显示false
纠正我如果我错了我知道redux-thunks以同步方式而不是异步方式工作所以这里为什么它不能以同步方式工作
我卡住了,请任何人帮助我!
更新
我刚刚得到prblm的位置,实际上在componentWillReceiveProps我正在设置选择状态值,因为它是异步的,所以当我在isPickEmpty函数中获取值时,我得到了 prev 值。
如何处理 setState 或者有什么办法解决

0 投票
2 回答
190 浏览

reactjs - 选择项目时更新项目列表

我正在构建一个具有侧边栏和主要区域布局的 React/Redux 实时聊天应用程序。侧边栏包含传入请求的列表,可以选择这些请求以在主区域中显示聊天预览。当一个项目被选中时,一个套接字连接被创建并且应用程序获取聊天的预览。但是,当单击按钮接受聊天时,将呈现一个新视图,该视图显示有关所选项目的更多信息以及可以执行的更多操作,例如继续对话。所选项目也会从传入请求列表中删除。

我尝试将所选项目的 ID 存储在一个数组中,并根据该数组更新侧边栏。当一个项目被点击时,项目的 ID 被分派给 reducer,它过滤对话对象,返回在主区域呈现的选定项目。

但是,在接受聊天后,我无法更新传入请求的列表,因此仍然可以预览和接受剩下的唯一项目,并且当有新的传入请求时,列表也可以更新。

我如何构建我的 Redux 存储以有效地管理这种情况。

最终结果示例:jivochat.com 代理区域。

谢谢。

0 投票
1 回答
2681 浏览

reactjs - 对 Redux createAction 和 dispatch 感到困惑

我想在 React + Redux 中构建一个函数,当用户单击按钮时,调用 API 并将数据加载到存储中,然后在页面上显示数据。

我想使用该redux-actions框架:https ://redux-actions.js.org/但我对我见过的不同示例感到有些困惑。

在某些示例中,我看到以下内容:

然后我看到了其他使用dispatch这样的示例(取自:https ://codeburst.io/redux-actions-through-example-part-3-91dc41ebe4be ):

我是 React 和 Redux 的新手,我试图了解你为什么/什么时候会做其中之一。

我对第一个示例有一个问题: - 如果不调用dispatch,reducer 是否能够执行此操作?如果是这样,这如何在不调用调度的情况下工作?

0 投票
0 回答
68 浏览

reactjs - StackNavigation 的 ReactNavigation.setParams?

我试图DISPATCH一个NavigationAction.setParam(params, key: 'stacknavname') 但问题是 StackNav 的密钥是完全随机生成的,我怎么知道它的密钥?还是我的方法不好?

基本上我有 2SwitchNav (Auth, App) 应用程序有一些堆栈,例如:Jobs, Addresses, etc... Jobs 和 Addresses 键是完全随机的,例如:id-218312-12312-12

那么我应该如何设置 StackNav 道具?

0 投票
1 回答
607 浏览

react-native - 如何在 react native 中使用 immutable.js 和 redux-actions 从 firestore 获取数据?

我是 React Native 的初学者。如果您给我任何建议,那将很有帮助,我将不胜感激。

我正在尝试firestore使用react-native, immutable.js,获取数据react-reduxredux-actions此代码也如下所示ducks structure。问题是我无法从中获取任何数据,firestore因为数据firestore来自于 reducer 执行之后。

甚至,我不确定是否可以将firestore获取方法作为createAction.

这是我的代码。


共享/index.js


存储/模块/categoryImgList

太感谢了!

0 投票
1 回答
172 浏览

javascript - 不可变地更新对象数组并管理长度归约

我正在尝试将搜索历史记录保存在我在 reducer 中制作的 react/redux 应用程序(使用 redux-actions)中。我想保存最近的十次搜索并在开始时使用最新的。我有一个对象数组,我想(不可变地)在数组的开头添加一个新对象,并将所有剩余的结果向下移动一个。我也不希望数组超过 10 个元素。我目前只是每次都用这个覆盖初始元素:

我希望在 ES6 中有一种干净的方法来做到这一点。有接盘侠吗?

0 投票
2 回答
891 浏览

javascript - _This2 在调度动作时不是函数错误

背景

我正在编写一段非常常规的代码,我在整个应用程序中多次创建了动作和减速器。我现在正在设置身份验证,并根据路由/&加载两个容器/register

问题

我正在尝试调度一个动作,并做一个简单的console.log("test"). 我之前已经做过很多次了,事实上,我确实复制了一个容器并更改了分派动作名称的名称。一个容器可以工作,而另一个容器则用:

我很困惑为什么它没有.在 props 和 registerHandler 之间显示

以下是相关代码:

集装箱进口

JSX

……

调度代码

那个行动

减速器

修改

这里的代码不起作用,我总是收到错误,但是如果我在登录组件中调用相同的操作,它将起作用。

登录组件

0 投票
2 回答
8059 浏览

redux - 命名 redux 动作类型描述的最佳实践

目前,当使用名为 MY_ACTION_TYPE_1 = 'MY_ACTION_TYPE_1'when it get really long 的动作类型时,它变得完全不可读,因为它从 redux chrome 扩展中的视图中截断。命名值的最佳做法是什么?自然语言(即MY_ACTION_TYPE_1 = 'My action type 1')还是应该总是和上面的变量名一样?

如果我将操作类型名称值设置为与操作类型变量名称本身不同,是否有任何权衡或问题?

即下面,看到一个用自然语言很好地包装,而全大写一个单词的方法刚刚被切断。

在此处输入图像描述

0 投票
1 回答
2172 浏览

redux - Redux:在标准化状态树中切换布尔值的最佳方法是什么?

我目前正在使用 React Native 开发一个应用程序。应用程序的状态非常复杂,但由于 Redux 和 Normalizr 是可以管理的。我现在必须为用户实现过滤项目的功能。

为了让用户过滤项目,我在 Normalizr 模式中丰富了服务器响应:

对应的 reducer 现在看起来像这样:

这些子类别现在使用此 SwitchListItem 组件显示在 UI 中,该组件通过选择器获取其项目:

我现在要实现<Switch />组件的onValueChange()功能,这就是我的问题所在:

在标准化状态树中切换布尔值的最佳方法是什么?

我想出了两个解决方案,我将在下面描述。如果您认为其中任何一个是好的,请告诉我。如果不是,我很想得到关于我可以做得更好的建议:)

解决方案1:扩展reducer:

我对这个问题的第一个解决方案是扩展 reducer 来监听TOGGLE_ITEM动作。这看起来像这样:

这是我的首选解决方案,因为它不需要大量代码。

解决方案 2:丰富将项目传递给的选择器SwitchList

另一种解决方案是丰富对象,同时使用具有状态键的选择器将其传递到列表。然后我可以创建一个使用此键更新状态的操作,如下所示:

如果您对 Redux 有丰富的经验,我很想阅读一个答案,最好是固执己见。另外,如果您认为我在 normalizr 中丰富数据的方法不好,您可以提出更好的方法,请告诉我!非常感谢您的任何建议!

0 投票
0 回答
506 浏览

reactjs - 如何在 React Redux 中分别更改列表项的每个状态?

使用

反应还原

redux-persist

还原动作

反应式

我正在自己学习 react-redux 和 react-native。我现在正在尝试从 react-redux 的列表中更新单个项目。我的项目中有很多类别和商店。用户将选择一个类别,然后单击商店列表中一项的“喜欢按钮”。这就像 instagram 或 facebook。

当我改变一个项目的状态时,商店列表中每个项目的状态都会同时改变。

我不知道为什么会这样。

我将结构设置为ducks模式以避免在更改状态时更改太多文件。如果有人提供一些建议,我将不胜感激,这可能对我有所帮助。谢谢你。我看到一些文章来解决这个问题,必须给出 id 来区分项目并将有效负载作为对象。我不太明白,所以我的代码现在很乱。但我想知道我的代码发生了什么,所以我分享了我的代码。


restaurantContainer.js


restaurantItem.js

thumbImg.js

喜欢Mod.js