Frontend/React

react-native Redux 코드 저장

Say simple 2020. 6. 11. 16:53
728x90
반응형

store.ts

import { combineReducers, createStore, Reducer, Store } from 'redux'

import {tokenReducer} from './token'

const rootReducer:Reducer = combineReducers({
    token:tokenReducer,
})

const store:Store = createStore(rootReducer)

export default store;

token.ts

import{
    TokenState,
    TOKEN_REQUEST, 
    TokenRequestAction
} from './token.type'
export const tokenState: TokenState = {
    token: 'test',
}

export const tokenSuccess = (token: string): TokenRequestAction =>{
    return {
        type: TOKEN_REQUEST,
        payload: token
    }
}

export const tokenReducer = (state = tokenState, action: TokenRequestAction): TokenState => {
    switch(action.type){
        case TOKEN_REQUEST:
            
            return {...state, token: action.payload }
        default:
            return state
    }
}

token.type.ts

export interface  TokenState {
    token: string | null;
}

export const TOKEN_REQUEST= 'TOKEN_REQUEST' as const

export interface TokenRequestAction {
    type: typeof TOKEN_REQUEST;
    payload: string|null;
}
728x90
반응형