반응형
새로고침하면 리덕스가 초기화 되는 걸
해결하기 위해서 redux-persist를 사용해서 새로고침해도 리덕스가 초기화 되는 현상을 막아주었다.
우선 redux-persist 모듈을 깔아주고. 아래와 같이 설정해주었다.
yarn add redux-persist
or
npm install redux-persist
//persistMiddleware.ts
import { REHYDRATE } from 'redux-persist/lib/constants';
import { Middleware } from 'redux';
const persistMiddleware: Middleware = (store) => (dispatch) => async (
action,
) => {
if (action.type === REHYDRATE && action.key === 'root') {
console.log('root REHYDRATE');
dispatch(action);
} else {
dispatch(action);
}
};
export default persistMiddleware;
//store.ts
...
const persistedReducer = persistReducer(persistConfig, reducer);
const storeConfig : ConfigureStoreOptions<AppState, AnyAction,[ThunkMiddleware<AppState, AnyAction>]> = {
reducer: persistedReducer,
middleware,
swrMiddleware,
};
export const store = configureStore(storeConfig);
...
//_app.tsx
...
const persistor = persistStore(store);
export default function App({ Component, pageProps }: AppProps) {
return (
<Provider store={store}>
<PersistGate loading={null} persistor={persistor}>
<Layout>
<Component {...pageProps} />
</Layout>
</PersistGate>
</Provider>
);
}
반응형
'React > Next.js' 카테고리의 다른 글
[Next.js] Next.js + Redux + TypeScript 사용중 state값 proxy로 나올때 해결법 (0) | 2022.02.17 |
---|---|
Next.js + TypeScript 사용하기 ! (0) | 2022.02.10 |
[Next.js] Next.js에서 Head 설정하는 방법 (0) | 2022.01.17 |
useSWR 사용하기. (0) | 2022.01.17 |
[Next.js] Pre-Rendering (0) | 2022.01.12 |
댓글