2016-05-05 4 views
0

Я новичок в Redux. Я хочу уточнить состояние моего приложения. Грубо у меня есть 3 страницы, которые пользователи могут распознать.Проект состояния Redux

  • Страница 1 предназначена для Печать списка статей.
  • Страница 2 для редактирование статьи.
  • Page 3 для печатает список приложений и параметры редактирования каждого приложения здесь.

Я разработал его так. У него нет проблем?

{ 
    articles : [ 
     { 
      id, 
      title, 
      body, 
      appendixIds 
     }, 
     ... 
    ], 
    isFetchingArticles, 
    articlesPagination : { 
     pageSize, 
     pageIndex 
    }, 
    appendixes : [ 
     { 
      id, 
      title, 
      body, 
      configs 
     } 
    ], 
    isFetchingAppendixes, 
    appendixesPagination: { 
     pageSize, 
     pageIndex 
    } 
} 

ответ

0

Государственный дизайн часто до интерпретации, однако, что-то, что может помочь, это думать о том, как вы настроите свои редукторы.

Если вы используете combineReducers, тогда состояние будет разбито на один объект для каждого редуктора, который вы проходите в него. Так, например, если у вас есть один редуктор для статей, а другой для приложений, то состояние в результате использования combineReducers будет выглядеть примерно так:

{ 
    articles: { 
    .... 
    }, 
    appendices: { 
    ... 
    } 
} 

Используя это, что может быть более полезным было бы настроить ваш состояние, как это:

{ 
    articles: { 
     items: [ 
     { 
      id: x, 
      title: x, 
      body: x, 
      appendices: x 
     }, 
     ... 
     ], 
     isFetching: false, 
     pagination: { 
     size: x, 
     index: x 
     } 
    }, 
    appendices: { 
    ... 
    } 
} 

Кроме того, обратите внимание на normalizr https://github.com/paularmstrong/normalizr. Это нормализует ваше дерево состояний, поэтому вы можете использовать его для ссылок на другие объекты, такие как ваш appendixIds в статьях.

Смежные вопросы