更改redux 数据,页面未重新渲染

简介: 更改redux 数据,页面未重新渲染

场景


在reducer中使用 object.assign(state,{data:xxx}) 合并了状态,控制台打印state 数据已更新,但是页面未重新渲染

原因

redux会通过引用来判断前后两次state有没有变化。return原来的state的话redux会认为你的state没有变化。

咱们用Object.assign(state,xx)是直接修改了state对象,然后返回的还是原来的state对象(被修改过的数据)但是引用未更改,还是同一引用源。

解决

使用而扩展符则是创建了一个新的对象,相当于Object.assign({},state,...)

注意:不要在reducer里面做以下操作
1、修改传入参数;
2、执行有副作用的操作,如 API 请求和路由跳转;
3、调用非纯函数,如 Date.now() 或 Math.random()。

相关文章
|
存储 JSON 安全
Token泄露引发的问题
Token泄露引发的问题
1368 0
|
机器学习/深度学习 算法 搜索推荐
推荐算法介绍
推荐算法介绍
882 0
|
Java
报错:java: 不兼容的类型: java.lang.String无法转换为int解决办法
这里遇到的问题是在scanner键盘输入时候进行了一个报错:java: 不兼容的类型: java.lang.String无法转换为int
2166 1
报错:java: 不兼容的类型: java.lang.String无法转换为int解决办法
|
12月前
|
存储 机器学习/深度学习 人工智能
《量子AI:突破量子比特稳定性与容错性的关键瓶颈》
量子计算的发展面临量子比特稳定性和容错性的关键挑战。量子纠错技术如表面码、Steane七量子比特颜色代码等,通过编码和解码提高可靠性。硬件设计选择超导或离子阱量子比特,结合低噪声器件减少干扰。量子噪声抑制技术优化环境,降低噪声影响。拓扑量子计算利用多体系统的拓扑性质实现天然容错。量子算法优化和AI技术助力,进一步提升抗干扰能力。尽管取得进展,但要实现大规模应用仍需克服诸多挑战。
286 13
|
缓存 JavaScript 前端开发
|
JavaScript Java 测试技术
基于SpringBoot+Vue+uniapp微信小程序的健身房私教预约系统的详细设计和实现
基于SpringBoot+Vue+uniapp微信小程序的健身房私教预约系统的详细设计和实现
166 0
|
JavaScript 数据可视化
JS如何优雅的实现模块自动滚动展示
【8月更文挑战第22天】JS如何优雅的实现模块自动滚动展示
324 1
JS如何优雅的实现模块自动滚动展示
|
JavaScript 前端开发
使用JavaScript实现一个复杂功能:日期范围选择器
使用JavaScript实现一个复杂功能:日期范围选择器
|
Linux 数据处理 数据库
深入解析Linux命令id:理解用户身份与权限
`id`命令在Linux中用于显示用户身份(UID, GID和附加组)。它查看系统用户数据库获取信息。参数如`-u`显示UID,`-g`显示GID,`-G`显示附加组,结合`-n`显示名称而非ID。用于确认命令执行者身份,确保权限正确。在脚本中使用时注意权限管理,遵循最小权限原则。

热门文章

最新文章