react-redux 解決不重新渲染的問題


原始代碼:

const reducers = (state=defaultState, action) => { switch(action.type) { case 'change': return Object.assign({}, state, {navList: action.navList}); default: return state; } } 
  • 數據更新正常。但是頁面沒有刷新。

正常運行代碼

const reducers = (state=defaultState, action) => { switch(action.type) { case 'change': return Object.assign({}, state, {navList: [...action.navList]}); default: return state; } } 
  • 一眼就能區分哪里不同。其實這個原因在於Object.assign()函數。
    我一直以為它是深拷貝。其實他只深拷貝一層。子對象的是淺拷貝。
    使用[...object1, ...object2]也是和assign方法是一樣的拷貝方式。


作者:py曉楓
鏈接:https://www.jianshu.com/p/67b40993672f
來源:簡書
著作權歸作者所有。商業轉載請聯系作者獲得授權,非商業轉載請注明出處。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM