ReactNativeでreduxを利用する
npm install redux react-redux
Action
export const addClip = ({clip}) => { return { type: 'ADD_CLIP', clip } } export const deleteClip = ({clip}) => { return { type: 'DELETE_CLIP', clip } }
reducer
const initialState = { clips: [] } const reducer = (state = initialState, action) =>{ switch (action.type) { case 'ADD_CLIP': return { ...state, clips: [...state.clips,action.clip] } case 'DELETE_CLIP': return { ...state, clips: state.clips.filter(clip => clip.url !== action.clip.url) } default: return state } } export default reducer
store
import {createStore, combineReducers} from 'redux' import userReducer from './reducers/user' import {composeWithDevTools} from 'redux-devtools-extension' const rootReducer = combineReducers ({ user: userReducer }) const store = createStore(rootReducer, composeWithDevTools) export default store
ReactNativeデバック環境構築
react-native-debuggerをインストールする https://github.com/jhen0409/react-native-debugger
redux-devtools-extensionインストール
npm install redux-devtools-extension
https://github.com/zalmoxisus/redux-devtools-extension
- 実装例
import {createStore, combineReducers} from 'redux' import userReducer from './reducers/user' import {composeWithDevTools} from 'redux-devtools-extension' const rootReducer = combineReducers ({ user: userReducer }) const store = createStore(rootReducer, composeWithDevTools) export default store