Ошибка типа: Не удается прочитать свойства неопределенного (чтение «href»)

#redux #react-redux #openid-connect #oidc-client #redux-oidc

Вопрос:

я пытаюсь поймать токен с помощью redux-oidc, но у меня ошибка в redux

это мои ошибки

введите описание изображения здесь

введите описание изображения здесь

это мой магазин

 import {  createRouterMiddleware,  initialRouterState, } from 'connected-next-router'; import { createWrapper } from 'next-redux-wrapper'; import Router from 'next/router'; import { applyMiddleware, createStore } from 'redux'; import { composeWithDevTools } from 'redux-devtools-extension'; import { loadUser } from 'redux-oidc'; import thunkMiddleware from 'redux-thunk'; import reducerList from './reducerList'; import userManager from './managers/userManager';  const makeStore = (context) =gt; {  const routerMiddleware = createRouterMiddleware();   const middlewares = [thunkMiddleware, routerMiddleware];  const middlewareEnhancer = applyMiddleware(...middlewares);   const enhancers = [middlewareEnhancer];  const composedEnhancers = composeWithDevTools(...enhancers);   const { asPath } = context.ctx || Router.router || {};   let initialState;  if (asPath) {  initialState = {  router: initialRouterState(asPath),  oidc: undefined,  language: "tr",  cartItems: [],  };  }   const store = createStore(reducerList, initialState, composedEnhancers);   if (process.env.NODE_ENV !== 'production' amp;amp; module.hot) {  module.hot.accept('./reducerList', () =gt;  store.replaceReducer(reducerList)  );  }   if (typeof window !== 'undefined') {  loadUser(store, userManager);  }   return store; };  export const wrapper = createWrapper(makeStore); 

это мое _app.js

 import React, { useEffect, useState, useContext } from 'react'; import NavbarMenu from '../src/components/navbar/Menu'; import Layout from '../src/components/requirements/Layout'; import '../src/styles/globals.css'; import Head from 'next/head'; import { configureStore } from '../src/redux/configureStore'; import { PersistGate } from 'redux-persist/integration/react'; import { wrapper } from '../src/redux/oidcStore';  const { persistor } = configureStore();  function MyApp({ Component, pageProps }) {  const [loading, setLoading] = useState(true);   useEffect(() =gt; {  setTimeout(() =gt; {  setLoading(false);  }, 500);  }, []);   return (  lt;gt;  lt;Headgt;  lt;titlegt;Oidc Examplelt;/titlegt;  lt;link  rel="stylesheet"  href="https://fonts.googleapis.com/icon?family=Material Icons"  /gt;  lt;link  rel="stylesheet"  href="https://fonts.googleapis.com/css?family=Roboto:300,400,500,700amp;display=swap"  /gt;  lt;link  rel="stylesheet"  href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.0.0-beta3/css/all.min.css"  integrity="sha512-Fo3rlrZj/k7ujTnHg4CGR2D7kSs0v4LLanw2qksYuRlEzO tcaEPQogQ0KaoGN26/zrn20ImR1DfuLWnOo7aBA=="  crossorigin="anonymous"  referrerpolicy="no-referrer"  /gt;  lt;/Headgt;  {loading ? (  lt;h1gt;Loading to page. Please Wait lt;/h1gt;  ) : (  lt;gt;  lt;PersistGate persistor={persistor}gt;  lt;NavbarMenu /gt;  lt;Layoutgt;  lt;Component {...pageProps} /gt;  lt;/Layoutgt;  lt;/PersistGategt;  lt;/gt;  )}  lt;/gt;  ); }  export default wrapper.withRedux(MyApp); 

it’s my reducerList.js

 import { combineReducers } from 'redux'; import languageReducer from './reducers/languageReducer'; import cartReducer from './reducers/cartReducer'; import { reducer as OidcReducer } from 'redux-oidc';    const reducerList = combineReducers({  language: languageReducer,  cart: cartReducer,  oidc: OidcReducer });  export default reducerList; 

it’s my userManager.js

 import { WebStorageStateStore } from 'oidc-client'; import { createUserManager } from 'redux-oidc';  let userManager;  if (typeof window !== 'undefined') {  const userManagerConfig = {  client_id: 'OidcExample_App',  redirect_uri: 'http://localhost:3000/auth/callback',  response_type: 'token id_token',  scope: 'openid profile',  authority: 'https://localhost:44311',  post_logout_redirect_uri: 'http://localhost:3000/auth/signout',  filterProtocolClaims: true,  loadUserInfo: true,  userStore: new WebStorageStateStore({ store: window.localStorage }),  };   userManager = createUserManager(userManagerConfig); } else {  userManager = undefined; }  export default userManager; 

it’s my callback.js

 import userManager from "../../src/redux/managers/userManager"; import { useRouter } from 'next/router'; import { CallbackComponent } from 'redux-oidc';  export default function Callback() {  const router = useRouter();   const successCallback = (user) =gt; {  const uri = user.state["returnUrl"];  redirect(uri);  };   const errorCallback = (error) =gt; {  // todo notify login failed  console.error(error);  redirect("/error");  };   const redirect = (uri) =gt; {  router.push(uri || "/");  };   return (  lt;CallbackComponent userManager={userManager} successCallback={successCallback} errorCallback={errorCallback} gt;  lt;h1gt;yükleniyor lt;/h1gt;  lt;/CallbackComponentgt;  ); } 

В чем может быть причина этой ошибки?, является ли redux-oidc или мой код react-redux или мой callback.js спасибо за все ответы