其實這小小的reading list的reducer還挺簡單的
import Immutable from 'immutable';
import actionTypes from '../constants/readingListConstants';
export const $$initialState = Immutable.fromJS({
  books: [],
  railsContext: {}, 
});
export default function readingListReducer($$state = $$initialState, action) {
  const { type, books } = action;
  switch (type) {
    case actionTypes.LOAD_BOOKS:
      return $$state.set('books', books); //set???
    case actionTypes.UPDATE_BOOK:
    case actionTypes.DELETE_BOOK:
    case actionTypes.UPDATE_BOOK_STATUS:
    default:
      return $$state;
  }
}
先定義好initial state,然後把每個action要回傳的state定義好,這樣就完成了reducer了!!
可以看到我們的$$state是使用了ImmutableJS,即使使用了set,他並不會改變到內部,而是回傳一個新的state。
這也符合不要隨意修改state的架構!當然要用Object.assign({}, state, books)也可以啦
大致上今天已經打完。
我還看看有什麼可以補的,有的話我在修改上來!!