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