How to define initialState from API? 
Actions
import * as types from '../constants/ActionTypes'
import jquery from 'jquery'
import { apiRoot } from '../config.js'
import Immutable from 'immutable'
import Random from 'random-js'
export function fetchLentItemList() {
  return function(dispatch) {
    dispatch(fetchLentItems());
    jquery.get(`${apiRoot}/api/v1/something/`)
      .done((data) => {
        dispatch(fetchLentItems("success", Immutable.fromJS(data)))
      })
      .fail(() => {
        dispatch(fetchLentItems("error"))
      })
  }
}
export function fetchLentItems(status, locations = Immutable.List()) {
  return { type: types.FETCH_LENT_ITEMS, status, locations }
}
Reducers
import * as types from '../constants/ActionTypes'
import { combineReducers } from 'redux'
import Immutable from 'immutable'
const initialState = {
  initialLentItems: [],
  lentItems: [] 
}
function initialLentItems(state = initialState.initialLentItems, action) {
  // return state
  switch (action.type) {
    case types.FETCH_LENT_ITEMS:
      switch (action.status) {
        case 'success':
          return {
            initialLentItems: action.locations,
            lentItems: []
          }
        case 'error':
          return {
            initialLentItems: Immutable.List(),
            lentItems: []
          }
        default:
          return Object.assign({}, state, { isLoading: true })
      }
    default:
      return state
  }
}
const rootReducer = combineReducers({
  initialLentItems
})
export default rootReducer;
In reducers if I defined my initialState like this, it works:
initialLentItems: Immutable.fromJS([
    {
      "lent_item_id": 5648,
      "vendor": "Vendor A",
      "product": "Product A",
      "variant": "Variant A",
    },
    {
      "lent_item_id": 5648,
      "vendor": "Vendor B",
      "product": "Product B",
      "variant": "Variant B",
    }
  ]),
Thanks in advance.
In the componentWillMount of your Redux root element (the one that is wrapped by Provider and receives the store) you can dispatch the fetchLentItems function to set up your initial state.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With