关于 redux-toolkit redux-saga 的一些问题
some question about redux-toolkit redux-saga
我有一个使用 redux-toolkit 和 redux-saga 的项目,现在运行良好。
但现在我有一些问题,我是否需要使用 redux-saga。
- 我使用 redux-saga 的大多数功能之一是因为它有副作用。
如果我在 reducer 执行后在 redux 上发送一个动作
它可以执行另一个传奇功能。
yield all([
takeEvery<any>(boardAcctions.addWidget.type, updateWidgetUI),
takeEvery<any>(boardAcctions.moveWidget.type, updateWidgetUI),
takeEvery<any>(boardAcctions.updateWidgetConfig.type, updateWidgetUI),
takeEvery<any>(boardAcctions.removeWidget.type, updateWidgetUI),
])
- 在 saga 功能上,您可以分派另一个操作,因此如果您有多个操作需要更新,使用 saga 会非常容易。
yield put(loginActions.updateUser(userdata))
yield put(dashboardAction.updateBoard(dashboarData))
但是在具有函数 createAsyncThunk() 的 redux-toolkit 上。
我无法发送另一个动作。即使在 extra reduces 上它也只是一个 reducer,我认为在里面调度另一个动作是不非法的
没有 redux-saga 我该怎么做?
感谢
当然,您可以从 createAsyncThunk
.
中调度其他操作
import { createAsyncThunk } from '@reduxjs/toolkit'
const fetchUserById = createAsyncThunk(
'users/fetchByIdStatus',
async (userId, { dispatch }) => {
dispatch(someOtherAction())
}
)
我有一个使用 redux-toolkit 和 redux-saga 的项目,现在运行良好。 但现在我有一些问题,我是否需要使用 redux-saga。
- 我使用 redux-saga 的大多数功能之一是因为它有副作用。 如果我在 reducer 执行后在 redux 上发送一个动作 它可以执行另一个传奇功能。
yield all([
takeEvery<any>(boardAcctions.addWidget.type, updateWidgetUI),
takeEvery<any>(boardAcctions.moveWidget.type, updateWidgetUI),
takeEvery<any>(boardAcctions.updateWidgetConfig.type, updateWidgetUI),
takeEvery<any>(boardAcctions.removeWidget.type, updateWidgetUI),
])
- 在 saga 功能上,您可以分派另一个操作,因此如果您有多个操作需要更新,使用 saga 会非常容易。
yield put(loginActions.updateUser(userdata))
yield put(dashboardAction.updateBoard(dashboarData))
但是在具有函数 createAsyncThunk() 的 redux-toolkit 上。 我无法发送另一个动作。即使在 extra reduces 上它也只是一个 reducer,我认为在里面调度另一个动作是不非法的
没有 redux-saga 我该怎么做?
感谢
当然,您可以从 createAsyncThunk
.
import { createAsyncThunk } from '@reduxjs/toolkit'
const fetchUserById = createAsyncThunk(
'users/fetchByIdStatus',
async (userId, { dispatch }) => {
dispatch(someOtherAction())
}
)