How can I properly lazy-load PrimeReact components for my application?
02:49 02 Dec 2025

I have created SPFx with React solution. I have used "primereact": "^9.4.0" version.

I’m trying to lazy-load PrimeReact components in my SPFx + React application.

But I am not loading the component when redirecting from one component to another.

My code:

  1. primeLoader.tsx
import * as React from "react";

const fallbackStyle: React.CSSProperties = {
  padding: "20px",
  textAlign: "center",
  fontSize: "16px"
};

const PrimeLoader: React.FC<{ children: React.ReactNode }> = ({ children }) => {
  return (
    Loading...
}> {children} ); }; export default PrimeLoader;
  1. primeLazy.tsx
import * as React from 'react';

/* UTIL / NON-LAZY EXPORTS */
export { FilterMatchMode, FilterOperator } from 'primereact/api';
export { confirmDialog } from 'primereact/confirmdialog';
export { classNames } from 'primereact/utils';

/* BUTTON */
export const Button = React.lazy(() =>
  import('primereact').then(m => ({ default: m.Button }))
);

/* FILEUPLOAD */
export const FileUpload = React.lazy(() =>
  import('primereact').then(m => ({ default: m.FileUpload }))
);

/* INPUTTEXT */
export const InputText = React.lazy(() =>
  import('primereact').then(m => ({ default: m.InputText }))
);

/* ACCORDION */
export const Accordion = React.lazy(() =>
  import('primereact/accordion').then(m => ({ default: m.Accordion }))
);
export const AccordionTab = React.lazy(() =>
  import('primereact/accordion').then(m => ({ default: m.AccordionTab }))
);

/* AUTOCOMPLETE */
export const AutoComplete = React.lazy(() =>
  import('primereact/autocomplete').then(m => ({ default: m.AutoComplete }))
);
  1. WebPart.tsx.
import * as React from 'react';
import AppLoader from './AppLoader';
import AppRouter from './AppRouter';

// Import PrimeReact CSS once (global)
import 'primereact/resources/themes/lara-light-blue/theme.css';
import 'primereact/resources/primereact.min.css';
import 'primeicons/primeicons.css';

const App: React.FC = (props) => {
return (



);
}

export default App;

How can I properly lazy-load PrimeReact components for my application?

Can anyone help me on the same?

Thanks

reactjs sharepoint-online spfx primereact