技術(shù)棧:react+redux+react-router v4
redux中的數(shù)據(jù)在列表頁獲取的時(shí)候,為何列表組件內(nèi)打印兩次?按理打印一次就行了吧。
打印第一次列表沒有數(shù)據(jù),第二次有數(shù)據(jù),那么會(huì)有個(gè)問題,當(dāng)我從列表到詳情,詳情返回的時(shí)候打印第一次沒東西,let listItems = this.props.topics.map(function (topic) {...})
這里會(huì)報(bào)錯(cuò)Uncaught TypeError: Cannot read property 'map' of undefined
。
實(shí)在想不通,搞了半天了... /doge/doge/doge
代碼在這里:http://git.oschina.net/allan9...
人生最曼妙的風(fēng)景,竟是內(nèi)心的淡定與從容!
看不到你完整的代碼,大概猜想一下,你這數(shù)據(jù)是異步從網(wǎng)絡(luò)請(qǐng)求來的吧,而組件是第一時(shí)間載入的?
所以當(dāng)你沒有數(shù)據(jù)的時(shí)候,它也會(huì)初始化渲染吧?而當(dāng)你數(shù)據(jù)回來后,根據(jù) state 的變化重新渲染,沒毛病吧。
而且我覺得,這個(gè)報(bào)錯(cuò)的關(guān)鍵在于,你沒有處理 defaultProps.topics
的值,說的簡單點(diǎn)兒,這應(yīng)該是第一次沒數(shù)據(jù)時(shí),topics 的值是 undefined 造成的。
因?yàn)殚_始傳入的 topics 是空的,拉取數(shù)據(jù)后,props.topics 變化,組件會(huì)刷新。
報(bào)的錯(cuò)說明topics不是個(gè)數(shù)組,檢查一下借口