redux中state数据已更新,但是页面上的数据没有随之更新

6 篇文章 0 订阅

前言:

使用redux做数据共享的时候,我已经调用了dispatch操作数据,state数据也已经改变了,但是就是不能同步到页面上。查阅了资料终于查询到了2个原因(我更倾向于后者)。


原因①:

React中组件的props更新需要经历更新过程,也就是调用了componentWillReceiveProps等一系列生命周期函数才会更新this.props。但是dispatch是异步的,而我们的页面操作的时候是同步的,因为js的运行机制,所有异步调用都会在同步调用全部完成后运行。当页面已经走完了同步操作,props的值并没有改变,还是原先的值。之后再执行dispatch虽然获取到了最新的值,但是渲染不到页面上。

原因②:state数据引用一直是同一个,被react-redux内置的shallow compare给过滤掉了。只需要改变数据的引用就好。


解决办法:我直接改变了state中的引用,然后就成功拿到数据了也渲染页面。

结尾:分享个脑筋急转弯

分享:你能以最快速度,把冰变成水吗?(可以评论留言答案:不要百度哦)

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值