Большинство всех соглашаются с тем, что определяющие константы для ваших типов действий Redux – хорошая идея. Если вы используете строковые литералы, все слишком легко пропустить один и удивляться, почему ваш редуктор не отвечает. Если вы используете константу, ваша IDE может указать на том гаффе.
Вот пример из документации Redux:
export const ADD_TODO = 'ADD_TODO' export const TOGGLE_TODO = 'TOGGLE_TODO' export const SET_VISIBILITY_FILTER = 'SET_VISIBILITY_FILTER'
Поскольку это в документах, вот как большинство проектов вы видите их. Итак, вы спрашиваете, есть ли причина делать это по-другому? Да, есть.
В любом нетривиальном приложении вы, вероятно, определяете константы типа действий и создатели действия, которые используют их в нескольких разных файлах, разделенных функциональной областью. Различные члены команды могут добавлять к ним все время, поэтому константы типа действия в одном файле конфликтуют с одним в другом файле, всегда является возможностью.
Например, рассмотрите, как константы определяли эти два файла:
Статьи. Icues.js.
export const FETCH_REQUESTED = 'FETCH_REQUESTED' export const FETCH_COMPLETE = 'FETCH_COMPLETE' export const FETCH_ERROR = 'FETCH_ERROR'
profile.ocies.js.
export const FETCH_REQUESTED = 'FETCH_REQUESTED' export const FETCH_COMPLETE = 'FETCH_COMPLETE' export const FETCH_ERROR = 'FETCH_ERROR'
Если ваши типы действий определены в отдельных файлах, шансы являются редукторами, которые также реагируют на них. Когда вы объединяете свои редукторы, вы, по сути, вы создаете одно большое выявление выключателя, и если у вас есть два типа действий с одинаковым постоянным значением, неправильный блок Cate в конечном итоге будет уволен для одного из них.
Является ли ответ, чтобы сделать постоянные имена и ценности дольше?
export const FETCH_PROFILES_REQUESTED = 'FETCH_PROFILES_REQUESTED' export const FETCH_PROFILES_COMPLETE = 'FETCH_PROFILES_COMPLETE' export const FETCH_PROFILES_ERROR = 'FETCH_PROFILES_ERROR'
Возможно, но это чрезмерно многословный и ненужный.
Помните, что постоянное имя и ценность не должны быть одинаковыми. Вот хороший способ имен пространства ваших постоянных ценностей, сохраняя простые и четкие имена в контексте их использования.
Статьи. Icues.js.
export const FETCH_REQUESTED = 'articles/fetch-requested' export const FETCH_COMPLETE = 'articles/fetch-complete' export const FETCH_ERROR = 'articles/fetch-error'
profile.ocies.js.
export const FETCH_REQUESTED = 'profiles/fetch-requested' export const FETCH_COMPLETE = 'profiles/fetch-complete' export const FETCH_ERROR = 'profiles/fetch-error'
В редукторе статей мы знаем, что имеем дело со статьями, поэтому все константы не должны иметь статьи как часть имени. То же самое с редуктором профилей.
Статьи .educer.js.
import { FETCH_REQUESTED, FETCH_COMPLETE, FETCH_ERROR } from '../actions/articles.actions'
PROFILES.REDUCER.JS.
import { FETCH_REQUESTED, FETCH_COMPLETE, FETCH_ERROR } from '../actions/profiles.actions'
Вот и все. Простые постоянные имена с значениями именных значений дадут вам ясность и снижение добросовестности при обеспечении правильных случаев пожара в ваших редукторах.