40得票2回答
什么是启动rootSaga的惯用方式?

redux-saga 项目已经存在相当长的时间了,但是关于这个库仍然有很多令人困惑的事情。其中之一是:如何启动您的 rootSaga。例如,在初学者教程中,rootSaga 是通过 yield 一个 saga 数组来启动的。就像这样:export default function* rootS...

38得票4回答
如何检查令牌是否过期并退出用户登录?

当用户单击注销按钮时,可以退出登录,但如果令牌过期,则无法注销,因为在我的应用程序中,令牌在服务器端和前端都使用。当用户单击注销按钮时,如果令牌有效,则会清除来自服务器和浏览器的令牌。存在这样一种情况,即用户没有注销,但他/她的令牌已过期,但在浏览器中未被清除。为解决这种情况,我应该如何在用户...

36得票2回答
redux-saga中fork和spawn有什么区别?

文档中说fork是一个“附加的fork”,而spawn是一个“分离的fork” - 它们有什么区别?

35得票2回答
Redux Saga选择器,如何从Saga中访问状态?

之前已有类似问题,但答案对我没有任何帮助。 Redux中的selectors是什么? 如何在redux-saga函数中从state / store获取数据? 我认为我的设置不同,因为我似乎无法从我的saga中访问状态。 我尝试做:const getList = store => ...

34得票5回答
React钩子:如何从useEffect中派发action

我的文件夹结构:|--App |--Components |--PageA.js |--PageB.js |--PageC.js |--common-effects |--useFetching.js 我正在重构我的代码,从API获取数据,使用React...

32得票5回答
当路由加载时,如何从无状态组件中分派Redux action?

目标: 当加载一个 react-router 路由时,分发 Redux 动作请求异步的 Saga worker 为该路由下的无状态组件获取数据。 问题: 无状态组件仅仅是函数,并没有像 componentDidMount 这样的生命周期方法,所以我不能在函数内部分发 Redux 动作。(?)...

32得票4回答
如何在回调函数中使用redux-saga中的“yield put”?

由于在回调函数中不允许使用"yield"语句,那么我该如何在回调函数中使用redux-saga的"put"功能呢? 我想要以下的回调函数:function onDownloadFileProgress(progress) { yield put({type: ACTIONS.S_PROG...

32得票4回答
takeEvery和takeLatest是什么?何时使用?可以同时使用吗?

我不确定在redux-saga中何时应该使用takeEvery和takeLatest。通过阅读官方文档,我了解到基本的区别。但是在takeEvery中创建并发操作的用途是什么呢?(例如,用户以快速的速度连续点击“加载用户”按钮,第二次点击将会触发一个USER_REQUESTED动作,而第一次请...

31得票3回答
如何使用Redux Saga测试API请求失败?

我正在尝试测试我的saga可能遵循的所有情况,但我无法实现我想要的行为。 这很简单,我有一个HTTP请求(登录),我想通过模拟我的API方法来测试成功和失败的情况。 但是,好像调用效果没有触发我的API函数,我还不太明白它是如何工作的,但我猜测中间件负责调用函数,并且由于我在测试时没有经过...

30得票4回答
多个redux-saga

我使用react-redux和redux-saga从这个例子中进行API调用。我的目标是使用不同的URL进行另外的API调用,并在不同的页面中使用它们。如何实现? Sagas:import { take, put,call } from 'redux-saga/effects'; impor...