typescript - Resolver el problema de ciclo de dependencias en una aplicación NextJS
Estoy teniendo un problema con un ciclo de dependencias dentro de mi aplicación NextJS que actualmente estoy luchando por resolver.
Aquí están mis archivos. Solo he incluido los imports que están mostrando el error de ciclo de dependencia
store.ts:
import rootSaga from './sagas/rootSaga';import authSliceStore from './slices/auth/authSlice.store';
// Dependency cycle via ./auth/auth.saga
const persistConfig = {
key: 'ea-root',
version: 1,
storage,
blacklist: ['authError'],
};
export const rootReducer = combineReducers({
auth: authSliceStore,
});
const persistedReducer = persistReducer(persistConfig, rootReducer);
const sagaMiddleware = createSagaMiddleware();
const middleware = [sagaMiddleware];
/**
* Creates a store and includes all the slices as reducers.
*/
export const store = configureStore({
reducer: persistedReducer,
middleware: (getDefaultMiddleware) =>
getDefaultMiddleware({
serializableCheck: {
ignoredActions: [FLUSH, REHYDRATE, PAUSE, PERSIST, PURGE, REGISTER],
},
}).concat(middleware),
devTools: process.env.NODE_ENV !== 'production',
});
sagaMiddleware.run(rootSaga);
export const persistor = persistStore(store);
export type RootState = ReturnType<typeof store.getState>;
raízSaga.ts
import { all } from 'redux-saga/effects';
import { loginSaga, logoutSaga } from './auth/auth.saga';
// Dependency cycle via ../../store
export default function* rootSaga() {
yield all([
loginSaga(),
logoutSaga(),
]);
}
auth.saga.ts
import { persistor } from '../../store';
// Dependency cycle via ./sagas/rootSaga
const isAxiosError = (x: any): x is AxiosError => {
return x.isAxiosError === true;
};
export function* logUserOut() {
Cookies.remove('access_token');
Cookies.remove('leisureManagementToken');
localStorage.removeItem('persist:ea-root');
yield call(persistor.purge);
yield call(Router.push, '/login');
}
function* loginSaga() {
yield takeLatest('auth/loginRequested', makeLoginRequest);
}
function* logoutSaga() {
yield takeLatest('auth/logout', logUserOut);
}
export { logoutSaga };
Como puedes ver, este diagrama rudimentario es el problema tal como está:
¿Alguien puede aconsejar aquí? Gracias
