Это мое первое приложение на редуксе. Я следил за одним редуктором для каждого шаблона страницы раньше, но по мере того, как приложение растет по сложности, я нахожу необходимость разбить его на субредукторы. Поэтому я сделал домашнее задание и просмотрел примеры, указанные на сокращении, и также я думаю, что моя текущая ситуация позволяет мне использовать selectors
, но я не уверен, что было бы лучшей практикой для составления моего редуктора для основной ситуации.Рекомендации по редукторному составу
Кроме того, следующая схема - это один интеллектуальный компонент на странице, а остальные компоненты - это только SFC, который просто выплевывает все, что им передавалось. Верхняя часть страницы имеет форму для регистрации и имеет асинхронное действие. В нижней части отображается массив и его внутренний вызов.
Итак, это мое начальное состояние для страницы:
const initialState = {
isFetching: false,
isCreating: false,
isDeleting: false, // Delete object from the bottom part
formStatus: '', // Displays status of the top part of backend call
blockStatus: '', // Status for the bottom part. GroupsList
statusType: '',
groupsList: [] // Fetch list for the bottom part
};
Кроме того, я должен был бы поддерживать свой род отфильтрованного списка, чтобы разместить его бакэнд от groupsList. Было бы неплохо использовать селекторов здесь?
Кроме того, есть другой вызов, который начинается с нижней части страницы с каждого объекта в списке, который у меня есть внизу, и он извлекает дополнительные списки, которые я бы добавил в каждом объекте в groupsList
. Итак, для основной ситуации и с учетом того, что рекомендуется сохранить нормализованное состояние, что было бы хорошей практикой, чтобы разрушить мои редукторы?
Редактировать: Я считаю, что в моей информации отсутствуют некоторые ключевые моменты. Итак, эта часть приложения, она разделена на две части. Поэтому у меня есть этот компонент, который я подключил к магазину с именем GroupsPage
. У GroupsPage
дополнительно имеется два компонента: GroupsForm
и GroupsBlock
.
GroupsForm
имеет кучу текстовых полей, чтобы позволить пользователю создавать новой группы и при успешном создании он будет добавлен в массив из списка групп вGroupsBlock
.GroupsBlock
дополнительно содержит компонентTable
, который отображает список групп, который я извлекаю из API при загрузке страницы. Каждая строка в блоке групп имеет два значка. Один для редактирует информацию о группах и другие для удаления группы.
Удаление и все остальное просто. Усложнение - это когда кнопка редактирования запускается. При нажатии кнопки редактирования есть вызов API для извлечения некоторых доступных свойств группы, которые я могу перетащить n через модальный список в список групп, а также опубликовать список обновленных групп на бэкэнд.
Так что мой редуктор состав выглядит следующим образом (ПОДРОБНО):
const initialState = {
isCreating: false,
isUpdatingContainersGroup: false,
isFetchingGroups: false,
isFetchingGroupHosts: false,
isDeleting: false,
didCreate: false,
didDelete: false,
didUpdateContainersGroup: false,
didFetchGroups: false,
didFetchGroupHosts: false
formStatus: '',
blockStatus: '',
statusType: ''
groupsList: [properties: [{}...{}]],
availableProperties: [{}.. {}],
newProperties: [{}... {}] // Have to maintain an array for new properties added. To post updated data
};
Так, лично я считаю, что это все довольно перепуталось, и мне нужно какое-то суб восстановителей и, вероятно, селекторов, а также и должен для его реализации в приложении для обеспечения согласованности.
Важная информация Я следую тому же шаблону во всем приложении. Каждая страница имеет форму и блок. И для каждой страницы у меня есть один подключенный компонент, и каждый другой материал, который внутри него, - это просто SFC.
Хорошо, я сделаю это сразу. – Umair
Удивительный! Благодарю. – nshoes
Проверьте правильность. – Umair