Simple Redux

 Create Redux Folder

Create Reducers Folder. -->. create index.php

import { createSlice } from '@reduxjs/toolkit'

const initialState = {
userToken: {access_token:''},
userDes: [{token: "QpwL5tke4Pnpja7X4", disclaimer: 'sdsd'}],
loading: true,
error: null
}

export const eveReducer = createSlice({
initialState,
name: 'eveReducer',
reducers: {
AuthToken: (state = initialState, action) => {
state.userToken = action.payload
},
UserDisclaimer:(state = initialState, action) => {
state.userDes = action.payload
},
logout:(state = initialState, action) => {
state.userToken = {},
state.userData = {}
},
},
})

export const { AuthToken , UserDisclaimer , logout} = eveReducer.actions

export default eveReducer.reducer


Create Store Folder. -->. create index.php

import { configureStore } from '@reduxjs/toolkit';
import { combineReducers } from 'redux';
import { persistReducer } from 'redux-persist';
import { eveReducer } from '../Reducers';
import AsyncStorage from '@react-native-async-storage/async-storage';
const reducers = combineReducers({
eveReducer: eveReducer.reducer,
});

const persistConfig = {
key: 'root',
storage: AsyncStorage,
};

const persistedReducer = persistReducer(persistConfig, reducers);
const store = configureStore({
reducer: persistedReducer,
middleware: getDefaultMiddleware =>
getDefaultMiddleware({
serializableCheck: false,
}),
});

export default store;

Use these to get data in front pages

import { useDispatch, useSelector } from 'react-redux';
import { AuthToken, UserDisclaimer } from '../../Redux/Reducers';

const dispatch = useDispatch()
const selectorDesclaimer = useSelector(state => state.eveReducer?.userDes);

dispatch(AuthToken({ access_token: responseJson.token }))


Comments

Popular posts from this blog

Add Axios Interceptor in Services where Api is called

React Interview Questions