#reactjs #redux #relationship
#reactjs #redux #отношения
Вопрос:
Я создал отношения «многие ко многим» в Laravel и хочу создать хранилище с его помощью. Например, у меня есть этот код:
const INITIAL_PEOPLE = {
all: [
{name: "John", city: "NY"}
]
}
У любых людей есть теги (многие ко многим отношениям). Лучшим способом для меня было бы, если бы мой магазин выглядел так (если у вас нет другой идеи, как я могу реализовать и отобразить элементы с этим отношением):
const INITIAL_PEOPLE = {
all: [
{name: "John", city: "NY", tags: [id: 1, name: "new_tag"]}
]
}
Это пример, похожий на внешний вид хранилища, но только данные были сервером и добавлялись редукторами. Итак, как я могу создать эту структуру хранилища (или решить эту проблему другим способом) с помощью reducer?
Ответ №1:
Вы можете нормализовать объекты данных в api-response, прежде чем сохранять их в redux.
Вы можете сохранить данные следующим образом:
Предположение: для каждого человека существует уникальный идентификатор.
ReduxStoreState:
{
"people":{
"id_1":{
"id":"id_1",
"name":"John",
"city":"NY"
},
"id_2":{
"id":"id_2",
"name":"Matt",
"city":"NJ"
}
},
"tagsByPeople":{
"id_1":[
{
"id":1,
"name":"new_tag"
}
]
}
}
Теперь вы можете записывать selectors
в теги выборки, предоставляя person-ID