1 回答

TA貢獻(xiàn)1830條經(jīng)驗(yàn) 獲得超3個(gè)贊
除了使用 IndexedDB 之外,我能想到的唯一方法可能非常冗長(zhǎng)??赡苡懈玫慕鉀Q方案,但這是我的想法:
持續(xù)狀態(tài)
使用參考 ID 展平您的對(duì)象結(jié)構(gòu)。就像在HATEOS或JSON:API中一樣。
一個(gè)非?;镜睦邮牵?/p>
原始對(duì)象結(jié)構(gòu)
{
name: "John",
kids: [
{ name: "mike" },
{ name: "tracy" }
]
}
扁平化
{
persons: [
{ id: 1, name: "John", kids: [2,3], parent: null },
{ id: 2, name: "mike", kids: [], parent: 1 },
{ id: 3, name: "tracy", kids: [], parent: 1}
]
}
現(xiàn)在沒(méi)有循環(huán)引用
對(duì)扁平化版本進(jìn)行字符串化和持久化。
獲取狀態(tài)
讀取持久化的數(shù)據(jù)并執(zhí)行
JSON.parse()
重新創(chuàng)建原始對(duì)象結(jié)構(gòu)
可能有一些工具可以幫助您解決這個(gè)問(wèn)題。嘗試遵守 HATEOS 或 JSON:API 的工具。
不理想,但它會(huì)工作,但有很多樣板和維護(hù)
添加回答
舉報(bào)