我很難重寫嵌套數據結構以利用redux狀態容器(我在使用Angular 2中的ngrx
)。Redux:拼合嵌套數據結構
- 我的數據包括許多產品
(id, title, description, etc.).
-
的
- 每個產品有1個或更多個 「包」
- 每個包裝可以具有附加元件和/或配置
- 一些配置選項可以具有子選項
在界面中,用戶首先選擇一個產品,比一個包,並且然後選擇的附加元件和/或配置的配置選項。
產品之間切換不應該重置底層軟件包配置。
當選擇產品時,只應顯示相應的包裝。
(think: Cars have Premium, Exclusive, Sports etc. packages)
(addons as in Car + Premium + alloy wheels)
(configuration as in sports package with sport suspension)
眼下什麼我有一個深嵌套的Product
結構,我想平坦化,因爲在不改變狀態的情況下改變任何更深層的選項都是地獄。
export class Product {
public id: string;
public title: string;
public packages: ProductPackage[] = [];
}
export class ProductPackage {
public id: string;
public title: string;
public sku: string;
public config?: ProductPackageOptionGroup[];
public addons?: ProductPackageOptionGroup[];
}
export class ProductPackageOptionGroup {
public title: string;
public options: ProductPackageOption[] = [];
// Checkbox or radio
public selectionmode: 'single' | 'multiple' = 'single';
}
export class ProductPackageOption {
public title: string;
public sku?: string;
public key?: string;
public value?: string;
public options?: ProductPackageOption[] = [];
public selectionmode: 'single' | 'multiple' = 'single';
}
如何拉平這種結構能夠滿足要求,並有一個更容易的時間與終極版開發?
也許你應該考慮嘗試Immutable.JS? – Maxime
另外,我在這裏沒有看到任何問題......你能澄清一下嗎? – Maxime
添加要求和問題 –