问题标签 [redux-toolkit]

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

reactjs - createAsyncThunk 和使用 redux-toolkit 编写 reducer 登录

我正在阅读createAsyncThunk文档,对流程感到有点困惑。这是来自文档:


我必须在reducersand中写extraReducers什么?标准减速器逻辑?

我有这个CodeSandbox,我实现了旧的 redux 方式。现在,需要在redux-toolkit其中实现。

0 投票
1 回答
2062 浏览

redux - Redux 工具包单独的操作文件?

我最近发现了 redux 工具包,并且对如何使用它处理 action 和 reducer 分离有一些疑问。在 redux 工具包之前,我有单独的文件夹和文件用于 reducer 和操作,但在 redux 工具包教程的所有示例中,他们都将他们的操作/thunk 与他们的 reducer/slice 保存在同一个文件中。我将需要使用 axios 和 createAsyncThunk(我假设)来访问我的 API。将动作和减速器分开在单独的文件夹/文件中是否仍然最好?只使用 createAsyncThunk 和 createReducer 而不是 createSlice 会更好吗?在 createSlice 中,我仍然不完全理解 extraReducers 的用途以及它与 reducer 之间的区别。如果对这个库更熟悉的人可以提供帮助,我将不胜感激。

0 投票
0 回答
270 浏览

reactjs - 如何避免 redux-toolkit 中出现重复的 reducer

  1. 我避免了 registerSuccess 和 loginSuccess、registerFailure 和 loginFailure 的重复代码。
  2. 我分别需要不同的类型
0 投票
3 回答
5388 浏览

reactjs - 使用 react-router-v5 和 redux-toolkit 登录时重定向页面

我正在使用 react-router-dom v5.2。

登录后,我希望我的页面重定向到/homefrom /。登录表单位于/

当我尝试在没有任何异步功能的情况下执行身份验证时(即,将用户名和密码与反应中的硬编码值进行比较),一切正常。

但是当我使用 express 和 mongo 执行身份验证时,登录时的重定向停止工作。如果我再次登录,则会发生重定向。受保护的路由仍然有效(如果用户未登录,则重定向到登录页面)。

这是我在 express + mongo 中使用 do auth 的问题的一个小演示,即。异步还原。这没有按预期工作。https://youtu.be/Zxm5GOYymZQ

这是我使用硬编码的用户名和密码(均为“测试”)进行身份验证的应用程序的链接。这里没有异步。这按预期工作。用户名和密码都是“测试”。https://poke-zoo.herokuapp.com/


这是App.js

这是ModalLogin.js.

这是authSlice.js.


我是否错误地将 react-router 与 redux-toolkit 一起使用?

这是Github 存储库

0 投票
2 回答
2435 浏览

react-native - 在 React-native 中使用 Redux Toolkit 持久化存储

我正在将 redux-persist 与 redux 工具包一起使用。这是我的商店配置。

我以前没有实现或配置过商店。我打算在登录后保留用户状态。目前登录后,如果我在模拟器中重新加载应用程序,它总是会返回登录屏幕。

我的商店配置正确吗?

更新的商店文件:

index.js在其中包装根组件的文件PersistGate

我目前得到的错误:

在此处输入图像描述

0 投票
0 回答
107 浏览

reactjs - 我真的需要通过将动作包装到 dispatch() 调用中来调用它们吗?

我是 Redux 的新手,我从来没有努力在我的项目中使用它,因为有太多的样板文件,而且我很难阅读和理解 Redux 代码。2019 年 10 月,他们发布了 Redux-Toolkit,旨在解决样板文件过多的问题并使 Redux 的使用更容易,所以目前我正在将我的旧应用程序迁移到 React hooks 和 Redux-Toolkit,我正在通过示例来实现(我喜欢以这种方式学习东西),我不太明白我需要在哪里以及为什么需要使用useDispatch钩子。所以我有这个简单的切片:

我导出减速器和像这样的动作:

然后我只需导入这些动作并直接调用它们,比如

但是我看到很多例子,人们通过将动作包装在 中来调用动作dispatch,这是由useDispatch钩子返回的。useDispatch调用动作时我应该或不应该使用它的目的是什么?

0 投票
2 回答
7354 浏览

reactjs - 如何使用 Redux Toolkit(使用 TypeScript)解决“AsyncThunkAction”类型中缺少“属性”类型?

我将 Redux Toolkit 与下面的 thunk/slice 一起使用。与其在状态中设置错误,我认为我可以使用此处提供的示例,通过等待 thunk 承诺解决来在本地处理它们。

我想我可以避免这样做,也许我应该通过error在状态中设置一个,但我有点想了解我在哪里出错了。

传递resultAction给时出现错误match

在此处输入图像描述

重击:

片:

感谢您的任何帮助!

0 投票
2 回答
7081 浏览

firebase - 如何克服“A non-serializable value detection”

我正在使用 redux-toolkit 实现反应应用程序,并且在从 firestore 获取数据时出现此类错误。

在路径中的操作中检测到​​不可序列化的值:payload.0.timestamps.registeredAt

在路径中的操作中检测到​​不可序列化的值:payload.0.profile.location

前者的数据类型是firebase.firestore.Timestamp,后者是GeoPoint
我认为两者都可能无法序列化,但我想获取这些数据并将它们展示给用户。
我怎样才能克服这些错误?
根据这个问题,我可能会这样写;

但是我不确定它是否安全,即使是这样,我也不知道如何编写路径动态方式,因为我的有效负载是数组。


如果有人提供一些线索,我将不胜感激。

0 投票
1 回答
3881 浏览

javascript - redux-toolkit 操作未在 reducer 中触发

我正在尝试使用@reduxjs/Toolkit 触发一个简单的操作,但它不起作用。

我看到该动作已被调度,但就像切片减速器没有听它或其他东西一样。

这是一个最小的复制示例: https ://codesandbox.io/s/redux-toolkit-0tzxs?file=/src/index.js

0 投票
1 回答
7434 浏览

testing - 测试 createAsyncThunk Redux Toolkit Jest

我是 redux 工具包库的新手,尤其是在测试方面。我浏览了文档并阅读了一堆关于这个主题的帖子和文章,但仍然很挣扎。我构建了一个简单的待办事项应用程序,并包含了几个 API 请求来涵盖异步情况。不过,测试这些结果有点挑战性。我希望就我的代码以及可以改进的地方获得一些建议和反馈。我还想对测试 createAsyncThunk 切片是否有意义提出一些意见。注意:我对测试 API 调用本身不感兴趣,并使用模拟数据重新创建成功的请求。

建设性的批评非常有帮助,将不胜感激

请看一下我的切片文件并进行测试

postSlice.ts

测试

postSlice.test.ts