redux - 使用 redux-starter-kit 的 configureStore() 设置 saga 中间件
问题描述
我正在开发纯 redux-saga 的应用程序,但随着应用程序的增长,文件的数量也在增长。为了解决这个问题,我正在尝试为我当前的应用程序设置 redux-starter-kit。
这是我的商店配置文件 index.js
import { configureStore, getDefaultMiddleware } from 'redux-starter-kit'
import rootReducer from '../reducers'
export const store = configureStore({
reducer: rootReducer,
middleware: [...getDefaultMiddleware()]
})
没有 redux-starter-kit 的 redux-saga 旧设置
// import createSagaMiddleware from 'redux-saga'
// import { initSagas } from '../initSagas'
// import rootReducer from '../reducers'
// import { loadState, saveState } from './browserStorage'
// function configureStore () {
// const sagaMiddleware = createSagaMiddleware()
// const persistedState = loadState()
// const createdStore = createStore(
// rootReducer,
// persistedState,
// applyMiddleware(sagaMiddleware)
// )
// initSagas(sagaMiddleware)
// return createdStore
// }
// export const store = configureStore()
// store.subscribe(() => {
// saveState(store.getState())
// })
问题:
当我设置 redux-starter-kit 时,旧的 sagas 不起作用。
长话短说:
如何在不影响当前 saga 文件的情况下使用 redux-starter-kit 设置现有的 redux-saga 应用程序?
先感谢您。
解决方案
redux-starter-kit
sagaMiddleware
默认情况下不包括[1]。您需要将其添加到中间件列表并自己初始化 sagas。
在你的情况下,我相信这应该有效:
import createSagaMiddleware from 'redux-saga'
import { configureStore, getDefaultMiddleware } from 'redux-starter-kit'
import rootReducer from '../reducers'
import { initSagas } from '../initSagas'
const sagaMiddleware = createSagaMiddleware();
export const store = configureStore({
reducer: rootReducer,
middleware: [...getDefaultMiddleware(), sagaMiddleware]
})
initSagas(sagaMiddleware);
[1] https://redux-starter-kit.js.org/api/getdefaultmiddleware
推荐阅读
- android - 获取具有签名保护级别的 Android 权限
- sas - SAS 格式在哪里定义?
- regex - 在 VSCode 用户代码段中将 Pascal Case 转换为 Kebab Case
- javascript - RuntimeError:线程 'Thread-1' 中没有当前事件循环。- requests_html, html.render()
- mysql - 循环生成 32 列的随机词/日期时间,将 100 万条记录插入 MySQL 非常慢
- python - 生成预测列表
- r - 在ggplot2中绘制多个组的平均值
- apache-kafka - 设置 Apache Kafka 集群
- corda - Oracle RAC (Corda Enterprise) 中的高可用性公证服务设置
- python - 如何使用字典将随机采样函数的性能从 O(n) 提高到 O(logn)?