Почти каждый объект в моем дереве состояний должно иметь следующие поля:Где держать "CurrentUser" глобально доступным
- createdByGuid
- createdAt
- modifiedAt
Поля даты являются легко добавлять в создателей действия. По-видимому, существует консенсус в отношении того, что создатели действий являются местом, где допускается нечистоплотность, то есть new Date()
.
Но в настоящее время вошедший в систему пользователь не так легко получить, поскольку эти данные находятся в другом разрезе состояния.
Пример состояние:
profile
data
guid
firstname
...
media
items
0: guid, createdByGuid, ...
1: guid, createdByGuid, ...
drawings
items
...
Когда действие MEDIA_ADD отправляется я хочу творец действие, чтобы увеличить посланные данные с createdById. Текущий пользователь должен быть получен от profile.data.guid
.
Я не хочу приводить государство в свой создатель действия. Вместо этого я могу использовать thunk, чтобы получить состояние через getState(). Но это, кажется, неуклюжий способ получить простую константу guid (постоянную для этой сессии). Он становится более неуклюжим, когда по существу все мои создатели действия для добавления данных в состояние должны быть громкими.
Я склонен создать отдельный глобальный одноэлементный объект для хранения этих данных и приведения этой зависимости ко всем модулям создания моего действия. Это, по-видимому, намного менее тревожная зависимость с точки зрения, например, тестирования.
Я полагаю, что у большинства пользователей Redux примерно такой же вопрос относительно текущего пользователя. Что такое хорошее решение?
Я работаю в режиме реагирования, но я полагаю, что этот вопрос применим к большинству приложений Redux.