Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import { createSlice, PayloadAction, configureStore, getDefaultMiddleware } from 'redux-starter-kit'
- import { combineReducers, Dispatch } from 'redux'
- // @ts-ignore
- import logger from 'redux-logger';
- export const user = createSlice({
- slice: 'user',
- initialState: {
- isFetching: false,
- name: '',
- age: 21
- },
- reducers: {
- setUserName(state, {payload}: PayloadAction<string>) {
- state.name = payload
- },
- incrementAge(state) {
- state.age++;
- },
- setIsFetching(state, {payload}: PayloadAction<boolean>) {
- state.isFetching = payload;
- }
- },
- });
- export const fetchUser = () => (dispatch: Dispatch) => {
- dispatch(user.actions.setIsFetching(true));
- setTimeout(() => {
- dispatch(user.actions.setUserName('Test'));
- dispatch(user.actions.setIsFetching(false));
- }, 2000);
- };
- const reducer = combineReducers({
- user: user.reducer
- });
- export const store = configureStore({
- reducer,
- middleware: [
- logger, ...getDefaultMiddleware()
- ]
- });
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement