Bonne façon de mettre à jour l'état dans redux réducteurs

Je suis un newbie dans redux et es6 syntaxe. Je fais mon application officielle de la redux tutoriel, et avec cette exemple.

Il y a JS extrait de code ci-dessous. De mon point - de définir REQUEST_POST_BODY et RECEIVE_POST_BODY cas dans des postes de réducteur.
Principal difficiles à trouver et mettre à jour à droite de l'objet dans le magasin.

J'essaie d'utiliser le code d'exemple:

  return Object.assign({}, state, {
    [action.subreddit]: posts(state[action.subreddit], action)
  })

Mais simple d'un ensemble de postes. Il n'est pas nécessaire de trouver poteau droit par id.

Voici mon code:

  const initialState = {
    items: [{id:3, title: '1984', isFetching:false}, {id:6, title: 'Mouse', isFetching:false}]
  }

  //Reducer for posts store
  export default function posts(state = initialState, action) {
    switch (action.type) {
    case REQUEST_POST_BODY:
      //here I need to set post.isFetching => true
    case RECEIVE_POST_BODY:
      //here I need to set post.isFetching => false and post.body => action.body
    default:
      return state;
    }
  }

  function requestPostBody(id) {
    return {
      type: REQUEST_POST_BODY,
      id
    };
  }

  function receivePostBody(id, body_from_server) {
    return {
      type: RECEIVE_POST_BODY,
      id,
      body: body_from_server
    };
  }

  dispatch(requestPostBody(3));
  dispatch(receivePostBody(3, {id:3, body: 'blablabla'}));
Si le ids sont toujours va être unique, vous pourriez être mieux de faire items un objet au lieu d'un tableau. Alors que vous pouvez trouver par id en utilisant simplement items[id].

OriginalL'auteur Max Vorozhcov | 2016-03-16