> For the complete documentation index, see [llms.txt](https://max-frontend.gitbook.io/redux-course-ru/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://max-frontend.gitbook.io/redux-course-ru/struktura_prilozheniya/konstanti.md).

# Константы

*ОБНОВЛЕНИЕ 2018: Вышло* [*второе издание*](https://maxfarseer.gitbooks.io/redux-course-ru-v2/content/) *(современный код и версии пакетов, данное издание УСТАРЕЛО)*

*На* [*канале*](http://bit.ly/2IqH74P) *так же проводятся бесплатные вебинары, публикуются переводы и авторские материалы,* [*присоединяйтесь*](http://bit.ly/2IqH74P)*!*

## Константы

Если вынести все page actions в отдельный файл с константами, то в будущем нам удобнее будет писать тесты/работать в команде/поддерживать код. К тому же, таким образом мы не будем отходить от "соглашений" принятых в разработке Flux/Redux приложений.

*src/constants/Page.js*

```javascript
export const SET_YEAR = 'SET_YEAR'
```

Подключим константу в редьюсер Page и в PageActions

*src/reducers/page.js*

```javascript
import { SET_YEAR } from '../constants/Page'

const initialState = {
  year: 2016,
  photos: []
}

export default function page(state = initialState, action) {

  switch (action.type) {
    case SET_YEAR:          //не забудьте обновить строку на константу
      return { ...state, year: action.payload }

    default:
      return state;
  }

}
```

*src/actions/PageActions.js*

```javascript
import { SET_YEAR } from '../constants/Page'

export function setYear(year) {

  return {
    type: SET_YEAR, //аналогично, теперь используем константу
    payload: year
  }

}
```

В дальнейшем мы еще добавим констант, не только для компонента `<Page />`, но и для компонента `<User />`, которые мы так же будем объявлять в отдельном файле.
