Эх сурвалжийг харах

Loading state from search parameter

bodicsek 6 жил өмнө
parent
commit
75dae1890c
2 өөрчлөгдсөн 12 нэмэгдсэн , 8 устгасан
  1. 5 4
      src/app/store.ts
  2. 7 4
      src/index.tsx

+ 5 - 4
src/app/store.ts

@@ -1,10 +1,11 @@
-import rootReducer from './rootReducer';
+import rootReducer, { RootState } from './rootReducer';
 
 import { configureStore } from '@reduxjs/toolkit';
 
-const store = configureStore({
-  reducer: rootReducer
+const store = (initialState? : RootState) => configureStore({
+  reducer: rootReducer,
+  preloadedState: initialState
 });
 
-export type AppDispatch = typeof store.dispatch;
+export type AppDispatch = ReturnType<typeof store>["dispatch"];
 export default store;

+ 7 - 4
src/index.tsx

@@ -3,14 +3,17 @@ import './index.css';
 import React from 'react';
 import ReactDOM from 'react-dom';
 import App from './app/App';
-import store from './app/store';
+import createStore from './app/store';
 
 import { Provider } from 'react-redux';
 
+
 var searchParams = new URLSearchParams(window.location.search);
-if (searchParams.has("state")) {
-  console.log("State received:", searchParams.get("state"));
-}
+const store = createStore(
+  searchParams.has("state")
+    ? JSON.parse(searchParams.get("state")!)
+    : undefined
+);
 
 ReactDOM.render(
   <Provider store={store}>