Advertisement
Guest User

Untitled

a guest
Mar 14th, 2019
90
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. import { createSlice, PayloadAction, configureStore, getDefaultMiddleware } from 'redux-starter-kit'
  2. import { combineReducers, Dispatch } from 'redux'
  3. // @ts-ignore
  4. import logger from 'redux-logger';
  5.  
  6. export const user = createSlice({
  7.   slice: 'user',
  8.   initialState: {
  9.     isFetching: false,
  10.     name: '',
  11.     age: 21
  12.   },
  13.   reducers: {
  14.     setUserName(state, {payload}: PayloadAction<string>) {
  15.       state.name = payload
  16.     },
  17.     incrementAge(state) {
  18.       state.age++;
  19.     },
  20.     setIsFetching(state, {payload}: PayloadAction<boolean>) {
  21.       state.isFetching = payload;
  22.     }
  23.   },
  24. });
  25.  
  26. export const fetchUser = () => (dispatch: Dispatch) => {
  27.   dispatch(user.actions.setIsFetching(true));
  28.   setTimeout(() => {
  29.     dispatch(user.actions.setUserName('Test'));
  30.     dispatch(user.actions.setIsFetching(false));
  31.   }, 2000);
  32. };
  33.  
  34. const reducer = combineReducers({
  35.   user: user.reducer
  36. });
  37.  
  38. export const store = configureStore({
  39.   reducer,
  40.   middleware: [
  41.     logger, ...getDefaultMiddleware()
  42.   ]
  43. });
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement