问题标签 [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.
reactjs - 具有另一个动作作为有效负载的 Redux 动作
redux action A 可以将 action B 作为其有效负载吗?
我的用例是我正在尝试存储每个正在进行的 API 请求并将我的 api 状态设置为以下格式:
属性的键requests
基本上type
是发起请求的动作(例如USER_FETCH_REQUEST
),值是动作(具有类型、有效负载、元数据的整个动作)。我用来过滤以(项目约定)结尾的redux-observable
每个动作,然后,如果匹配,则调度一个新动作,该动作接收初始 api 请求动作作为参数(有效负载)并使用它进行更新。type
_REQUEST
ApiState
简单的例子:
这样,如果我的应用程序脱机并且我有 5 个请求ApiState
,我只需在保留网络后调度所有这些操作(因为操作应该具有正确完成请求所需的所有数据)。
我也在清除这些请求,_SUCCESS
或者_CANCEL
有一些自定义逻辑,_ERROR
但我只是好奇上面的规范是否是反模式并且会导致不想要的应用程序状态?
reactjs - store.dispatch 原因( NotAllowedError )
我有一个功能,可以在其中加载给定的用户对话。它一直没有故障,直到今天早上我开始收到此错误消息
未处理的拒绝(NotAllowedError):在当前上下文中,用户代理或平台不允许请求,可能是因为用户拒绝了权限。
这是我的功能
设置对话
以前有没有其他人遇到过这个问题?
store.dispatch(set_conversations(conversations)) 是导致问题的原因
reactjs - react-redux 中的 API 调用,thunk 不起作用
当我提交电子邮件和密码时,它不会给出任何错误。但是我可以看到 loginUser(email,password) 函数中的 api 调用不起作用。但是电子邮件已正确传递给该函数。由于此功能不起作用,因此在提交值后,任何操作都不会调度。
这是我的 index.js 文件
这是我的 action.js 文件
react-native - 纯组件可以使用 redux 动作吗?
我有一个 FlatList,我想通过使用纯组件对其进行优化。
由于我是 react-Native 的新手,所以我不确定在动作(函数)将作为道具传递的情况下,纯组件将如何发挥作用。
我知道它们的好处是通过对状态和道具进行浅层比较来防止重新渲染,但我不确定 redz 动作将如何影响。
我认为由于它不会改变它不会影响性能。
这个假设是否正确?
reactjs - 一个动作更新多个减速器性能问题
在当前的应用程序中,我设置了多个 redux reducer 来存储数据。让我们称它们为“user-reducers”和“pet-reducers”。这两个非常相似,它们都有一个帖子[]。现在,每当用户喜欢帖子 [] 中的帖子时,就会触发一个动作“likeDone”。现在我有 2 种选择来实现 redux 更新:
选项 1:“user-reducers”和“pet-reducers”都听“likeDone”。IMO,当我有更多类似的减速器并且所有这些减速器都列出一个动作时,这在后期阶段效率低下。
选项 2:将“likeDone”更改为 2 个更明确的操作,例如。'likeUserPostDone' 'likePetPostDone' 每个reducer都会对匹配的动作做出反应。这样,reducer 更新似乎更有效,但稍后会有更多的动作类型,最终会出现很多“switch - case”,我不确定这是否是一个好习惯。
感谢阅读,请告诉我最适合我的情况。
reactjs - 如何替换我的 redux 操作并使用创建操作库?
我正在寻找可以减少 redux 样板的 redux 库,最近我发现了 reduxsouce 和 redux-actions,它们有助于减少 action 对象代码的重写。在我之前的所有动作定义项目中,我将为所有动作创建一个文件,动作看起来像这样
现在,如果我想删除动作定义并切换到“createaction”,我该如何用 redux-actions 中的 createaction 方法替换它?
另外我如何处理或“放置”来自 saga 的其他失败或成功操作(生成器函数)?
javascript - 是什么阻止了我的 redux 操作正常工作?
我是 React 的初学者,所以请多多包涵。几个小时以来,我一直在努力解决这个问题,只是无法理解我做错了什么。
一切正常,只需找到并加载 0 个错误。但是,当我尝试启动一个动作时,绝对没有任何反应。我正在记录状态,并且在应用程序初始启动后没有额外的日志。
所以我正在尝试构建的是超级简单的练习应用程序。它只是在屏幕上显示一个单词,每个字母本身就是一个组成部分。用户可以单击两个按钮中的任何一个,在单词的开头或结尾添加一个字母。而已。我仅有的两个动作是添加这些字母。
这是我的主要 App.js:
这是我的 CurrentWord 组件:
这些是我的行动 (actions/index.js)
我的 LettersReducer:
我的减速器/index.js:
还有我的主要 index.js:
这是我的加法器组件:
我认为这应该是所有相关的。我会很感激任何帮助,谢谢!
reactjs - Redux 操作的 TypeScript 返回类型
我在代码库中有这个;
的返回类型是login
什么?
我试过这个:
而那种类型肯定是错误的。这里正确的 TS 返回类型是什么?迟钝很难在网上找到答案。
javascript - React redux,动作有效负载在 try/catch 块中看不到变量
我正在尝试将变量“结果”放入操作有效负载中,但无法定义它,因为它位于 try 块中。我不确定如何解决这个问题。我还是 Redux 的新手,这就是操作本身。
我尝试使用 let 在顶部初始化结果,但它没有解决问题。另外,我不确定我是否使用我在其中设置的变量正确设置了有效负载。例如,它们需要在 reducer 中使用,我的猜测是将有效负载中的项目称为 action.payload.result、action.payload.category、action.payload.isLoadMore,只要我需要在 reducer 中使用它们. 这是正确的方法吗?感谢您为帮助回答我的问题所做的任何贡献。