React context, I get an error when I refresh the page

Viewed 119

What I'm trying to do is to call my service on the main page and then assign context to the response and print it in another component. I can print but when I refresh the page I get an error.

home.js

import React, { useContext, useEffect } from 'react';
import { PolicyContext } from 'contexts/PolicyContext';
import { PolicyService } from 'services/PolicyService';
const Home = () => {

  const { policyData, setPolicyData } = useContext(PolicyContext);

  const activiesPolicyExampleReq = {
    nationalId: '59104492600',
  };

  useEffect(() => {
    PolicyService.getActivePolicies(activiesPolicyExampleReq).subscribe(
      (response) => {
        setPolicyData(response);
      }
    );
  }, []);
}

PolicyContext.js

import React, { createContext, useMemo, useState } from 'react';

export const PolicyContext = createContext(undefined);

const PolicyContextProvider = (props) => {
  const [policyData, setPolicyData] = useState();
  console.log('PC');
  return (
    <PolicyContext.Provider
      value={useMemo(() => {
        return ({
          policyData,
          setPolicyData,
        });
      }, [{ policyData, setPolicyData }])}
    >
      {props.children}
    </PolicyContext.Provider >
  );
};

export default PolicyContextProvider;

App.js

import { Route, Router } from 'react-router-dom';

import AppRouter from 'routes/AppRouter';
import { CookiesProvider } from 'react-cookie';
import Header from 'modules/Header';
import Login from 'pages/login/login';
import Onboarding from './pages/onboarding/onboarding';
import PolicyContextProvider from './contexts/PolicyContext';
import React from 'react';
import Theme from 'theme/Theme';
import { history } from './libs/History';

export default function App() {
  return (
    <Theme>
      <CookiesProvider>
        <PolicyContextProvider>
          <Router history={history}>
            <Route exact path={['/onboarding']} component={Onboarding} />
            <Route exact path={['/login']} component={Login} />
            <Header />
            <AppRouter />
          </Router>
        </PolicyContextProvider>
      </CookiesProvider>
    </Theme>
  );
}

the component i want to print

  const { policyData, setPolicyData } = useContext(PolicyContext);
  console.log(policyData);

          <TabPanel value={value} index={0}>
            <PolicyCarousel
              policyList={
                policyData.activePoliciesMap
                  ? policyData.activePoliciesMap[policiesMapType]
                  : null
              }
              policyType={0}
            />
          </TabPanel>

error in console: Cannot read properties of undefined (reading 'activePoliciesMap')

0 Answers
Related