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

求教各位 react里面使用redux

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

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

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

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

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

回答
編輯回答
尤禮

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

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

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

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

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

productList: []

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

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

2017年12月30日 12:52