Skip to main content

Before starting

Content

First read about Redux and Redux ToolKit, about what it can do, what they offer and then come back here to move on.

It's important to know about them because they are core components of this template and knowing them can save your time and eliminate many questions.

If you don't want to use Redux

You can simply remove it with next following steps:

  • Remove it from dependencies and devDependencies:
npm uninstall @reduxjs/toolkit react-redux redux-persist @types/react-redux
  • Delete the src/core/store folder
  • Remove Redux usage from registerNavigationComponent
  • Change Splash screen navigation component initialization:

From:

  registerNavigationComponent(Pages.splash, Splash, true);

To:

  registerNavigationComponent(Pages.splash, Splash);
  • Remove usage of useAppSelector in Splash (but you have to manage now Onboarding logic your way):
export const Splash: NavigationFunctionComponent = () => {
useEffect(() => {
setTabsRoot();
}, []);

return <LoadingComponent />;
};
  • Remove unneeded interfaces from src/types/index.ts:
export interface RehydrateAppAction extends RehydrateAction {
payload?: RootState;
}
  • Remove unneeded handlePromiseResult from src/common/validations/errorValidations.ts:
export function handlePromiseResult(
promiseAction: Promise<any>,
successMessage?: string,
successAction?: () => void,
processError?: (error: Error) => IErrorResult,
setError?: (errorMessage: string) => void,
) {
promiseAction
.then(unwrapResult)
.then(() => {
successMessage && showToast({text: successMessage});
successAction && successAction();
})
.catch((handledError: Error) => {
processError && handleErrorPostProcessing(processError(handledError), setError);
});
}

That's it, you successfully removed redux from project.