Я пытаюсь изменить свое хранилище Redux, чтобы я мог легко запрашивать и фильтровать свои данные.
У меня есть конечная точка API, которая возвращает заказ обратно.Порядок выглядит следующим образом на высоком уровне:
Order
+ references
+ item_details
- category_id
- product_id
- product
Таким образом, у заказа много ссылок, а у ссылок много item_details.Детали товара имеют категорию и продукт.
const data = {
id: 3939393,
discount: 0,
references: [
{
id: 123,
order_id: 3939393,
name: "order 1",
item_details: [
{
id: 100,
order_id: 3939393,
product_id: 443,
sort_order: 1,
category_id: 400,
product: {
id: 443,
name: "hello world",
price: 199
}
},
{
id: 200,
order_id: 3939393,
product_id: 8080,
sort_order: 2,
category_id: 500,
product: {
id: 8080,
name: "hello json",
price: 299
}
}
]
}
]
};
export default data;
Пока мои определения схемы выглядят так:
export const productSchema = new schema.Entity("products");
export const itemDetailSchema = new schema.Entity("itemDetails", {
product: productSchema
});
export const references = new schema.Entity("references", {
item_details: new schema.Array(itemDetailSchema)
});
export const orderSchema = new schema.Entity("orders");
const result = normalize(data, orderSchema);
console.log("result is: " + JSON.stringify(result));
- Как я могу получить продукты в своем собственном разделе внормализованный JSON?В настоящее время продукты по-прежнему встроены в JSON.
Если бы я использовал normalizr для создания состояния, «индексный» тип выглядит следующим образом:
productsInReferences: {
123: [400, 8080]
}
Если нет, то какименно для того, чтобы сгенерировать эти типы поиска в формате JSON?
До сих пор я создал коды и коробку с моим кодом.https://codesandbox.io/s/xpl4n9w31q