Константы
Константы одна из первых тем для холиваров. Как их лучше делать, где размещать и так далее. Мы возьмем такой способ: будем определять константу рядом с экшеном.
src/actions/PageActions.js
1
export const SET_YEAR = 'SET_YEAR' // положили строку в константу
2
3
export function setYear(year) {
4
return {
5
type: SET_YEAR, // изменили строку на константу
6
payload: year,
7
}
8
}
Copied!
Подключим константу в редьюсер Page
src/reducers/page.js
1
import { SET_YEAR } from '../actions/PageActions'
2
3
const initialState = {
4
year: 2018,
5
photos: [],
6
}
7
8
export function pageReducer(state = initialState, action) {
9
switch (action.type) {
10
case SET_YEAR: // изменили строку на константу
11
return { ...state, year: action.payload }
12
13
default:
14
return state
15
}
16
}
Copied!
В дальнейшем мы будем придерживаться такого подхода и добавлять константы для всех типов наших экшенов. Зачем мы это делаем, сказать сложно. Попробую придумать пример: вы решили, что все ваши типы теперь должны быть составными строками module name/action type, получается для SET_YEAR будет:
1
const SET_YEAR = 'page/SET_YEAR'
Copied!
При подходе с константами, вам потребуется изменит код лишь в одном месте (в определении константы).
Итого: превратили строковое значение в константу и познакомились с данным подходом организации типов экшенов.
Copy link