Richtige Weg, um update-state in der redux-Reduzierer

Ich bin ein Neuling in redux und es6-syntax. Ich meine die app mit den offiziellen redux tutorial, und mit diesem Beispiel.

Gibt es JS-snippet unten. Meine Punkt - zu definieren REQUEST_POST_BODY und RECEIVE_POST_BODY Fällen, in Beiträge reducer.
Main-schwer zu finden-und update-Rechte-Objekt im Speicher.

Ich versuche es mal mit code von Beispiel:

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

Aber es verwendet einfache Reihe von posts. Es ist nicht erforderlich, zu Recht finde post by id.

Hier mein 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'}));
  • Wenn die ids sind immer einzigartig sein, Sie könnten besser machen items ein Objekt statt einem array. Dann können Sie finden, indem Sie id nur mit items[id].
Schreibe einen Kommentar