reactjs - Where I handle API calls in react-native and redux -
i'm building android app using react-native + redux + immutable
i structured app this
/src  -/components  -/actions (where have action types , actions)  -/reducers  -/api (i'm not sure if i'm doing right) ok, have action need make api call fetch this:
import * types './casestypes'  export function getcases() {     return {       type: types.get_cases     } } this cases reducer:
const initialstate = fromjs({   isloading: false,   cases: null }) export default function cases(state = initialstate, action = {}) {      switch(action.type) {          case types.request_cases:           return state.set('isloading', true)          case types.recive           return state.set('cases', //set here array recive api call)          default:           return state     } } so, thing dont understand, should make api call in reducer can merge initial state recive api call?
your app structure sound.
i recommand usage of redux-thunk handle dispatch. here how work in case:
let's have 'cases' part of state tree. put api call in action suggested fetch new cases:
import * types './casestypes'  export function getcases() {     return fetch(...)              ...              .then((json) => {                dispatch({                           type: types.received_cases,                  isloading: false,                  cases: json,                } } and in reducer newly dispatched action merge new cases state tree:
const initialstate = fromjs({   isloading: false,   cases: null })  export default function cases(state = initialstate, action = {}) {      switch(action.type) {          case types.request_cases:           return state.set('isloading', true)          case types.received_cases:           return object.assign({}, state, {             cases: state.cases.merge(action.cases),           });          default:           return state     } } i working structure , works pretty well. hope helps!
Comments
Post a Comment