setState()的使用方法

对象式:setState(stateChange,callback)——新状态不依赖于原状态。

函数式:setState((state,props)=>stateChange,callback)——新状态依赖于原状态。

——stateChange:状态改变对象,只包含改变的内容。

——callback:可选的回调函数,在状态更新完毕并且页面也更新完毕(render())后调用,可以用于获取最新的状态数据。

  • setState()更新状态是异步的还是同步的?

    1、在react控制的回调函数(生命周期钩子、react事件监听回调)中——异步。

    2、非react控制的异步回调函数(定时器回调、promise回调、原生事件监听回调)中——同步。

  • 异步setState()的多次调用

    对象式setState():状态更新合并(state只更新一次),界面更新合并(只render()一次)。

    函数式setState():状态更新不合并,界面更新合并——接收的state和props都保证为最新的。

    ——如果先setState({}),再setState(fn),状态更新不会合并。

    ——如果先setState(fn),再setState({}),状态更新会合并。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值