Я использую redux с normalizr для нормализации ответа от сервера, в основном следуют примеру real-world. Таким образом, редуктор entities
очень прост, просто слейте ответ. Проблема, которую я сейчас имею в виду, - это операция delete
. Я нашел этот номер № 21 нормального репо, но до сих пор не мог понять, как это решить. Например,
Текущее состояние
{
entities:
product_categories: {
...
13: {
...
products: ["1", "2"], <--------------- [i] Current state
...
}
},
products: {
1: {
id: "1"
}
}
}
Нормализованный ответ
{
...
product_categories: {
...
13: {
...
products: ["1"], <---------------- [2] Normalized result
}
...
}
Как вы можете видеть, backend api возвращает все идентификаторы продуктов, принадлежащие этой категории, в этом случае "2" отделяется. Когда редуктор сущностей объединяет этот ответ, "2" все еще висит вокруг. Сейчас я просто перезагружаю страницу, но мне интересно, есть ли лучший способ справиться с этим случаем?
В редукторе entities
я просто сливаю его, как в реальном примере.
return merge({}, state, action.payload.entities);