鍍金池/ 問(wèn)答/數(shù)據(jù)分析&挖掘  PHP  HTML/ 求教各位 react里面使用redux

求教各位 react里面使用redux

現(xiàn)在一直被一個(gè)問(wèn)題所困擾, 就是這個(gè) redux 保存的值,

比如有一份數(shù)據(jù)結(jié)構(gòu)是通過(guò)api獲取下來(lái)的, 但是fetch下來(lái)之前, 頁(yè)面就會(huì)渲染一次, 這個(gè)時(shí)候這個(gè)數(shù)據(jù)結(jié)構(gòu)在redux里面不存在,就出現(xiàn)undefined的問(wèn)題

另外也有說(shuō),應(yīng)該在redux里面給一個(gè)初始值, 這個(gè)初始值又應(yīng)該怎么樣給? 我總不能把服務(wù)端的數(shù)據(jù)結(jié)構(gòu)復(fù)制一份放到redux里面作為初始值吧? 像這樣的需要通過(guò)服務(wù)端獲取的數(shù)據(jù)結(jié)構(gòu)很多,那豈不全都要復(fù)制一份下來(lái)。。。

然后我試著在redux創(chuàng)建一個(gè) 標(biāo)識(shí),即當(dāng)數(shù)據(jù)結(jié)構(gòu)還沒(méi)有時(shí),為false,已得到數(shù)據(jù)結(jié)構(gòu)時(shí),修改為true的狀態(tài),然后render渲染的時(shí)候去檢測(cè)這個(gè)標(biāo)識(shí)是true還是false, 但又出現(xiàn)一個(gè)問(wèn)題,頁(yè)面比較多, 那豈不所有的頁(yè)面都要添加這么一個(gè)檢測(cè),

求教各位朋友,能指點(diǎn)一下, 萬(wàn)分感謝!

回答
編輯回答
尤禮

不要用賦初始值。redux數(shù)據(jù)盡量扁平化。但是需要。stat.key =null。每次用數(shù)據(jù)的時(shí)候用lodash判斷一下isPlainObject或者isArray。

2018年6月6日 10:53
編輯回答
晚風(fēng)眠

初始的數(shù)據(jù)結(jié)構(gòu)根據(jù) 需要的 數(shù)據(jù)來(lái)寫(xiě)
比方說(shuō)
我的用戶(hù)信息 你存放在 redux 里面,而數(shù)據(jù) 初始值

user: {
    id: '',
    name: '',
    roles: []
}

如果 是 產(chǎn)品列表 就這樣

productList: []

這樣就是擁有初始值了, 調(diào)用 user.id 時(shí)候而不會(huì)爆undefined

ps: 修改答案
你也 可以 這樣寫(xiě)
user: null 因?yàn)?user 是個(gè)對(duì)象 用null 可以的 然后 在頁(yè)面判斷 user 是否存在, 如過(guò)user不存在 就不用渲染了。其實(shí)你要考慮 后端有什么數(shù)據(jù)給你什么數(shù)據(jù)不給你,然后根據(jù) if 去判斷 就可以了,這樣的話 如果 上級(jí)不存在,那么下級(jí)應(yīng)該是不給渲染的

2017年12月30日 12:52