如果你的render()方法依赖于一些其他的数据,你可以告诉React组件需要通过调用forceUpdate()重新渲染。
调用forceUpdate()会导致组件跳过shouldComponentUpdate(),直接调用render()。这将触发组件的正常生命周期方法,包括每个子组件的shouldComponentUpdate()方法。
forceUpdate就是重新render。有些变量不在state上,当时你又想达到这个变量更新的时候,刷新render;或者state里的某个变量层次太深,更新的时候没有自动触发render。这些时候都可以手动调用forceUpdate自动触发render

useReducer

基础hook useState和useReducer提供了可以刷新(更新)函数组件的途径。同样,也是自定义hook刷新的途径。如果想让自定义hook去刷新函数组件,那只能在自定义组件中使用useState或者useReducer来强制刷新,达到类似以前forUpdate的效果。

function useForceUpdate() {const [ , forceUpdateDispatch ] = useReducer(v => v + 1, 0)useEffect(() => {const unSubscribeFn = store.subscribe(() => {forceUpdateDispatch();})return unSubscribeFn;}, [ store ])return store;
}

当数据发生改变时候,会调用forceUpdateDispatch ,改变flag,从而导致这个reducer变化,触发自定义hook useRedux变化,连锁触发App刷新,达到以前forceUpdate的效果。

一一七、react Hooks实现forceUpdate相关推荐

  1. React学习七(React Hooks)

    文章目录 一.为什么会有Hooks 二.Hooks的含义 三.React Hooks的用法 1.useState() 2.useContext() 3.useReducer() 4.useEffect ...

  2. 【译】什么是React Hooks

    原文:What are React Hooks? 作者:Robin Wieruch 译者:博轩 React Hooks 于 2018年10月的React Conf 中引入,作为在 React 函数组件 ...

  3. react hooks使用_如何使用React Hooks和Context API构建简单的PokémonWeb App

    react hooks使用 After seven years of full stack development using Ruby, Python, and vanilla JavaScript ...

  4. React Hooks 分享

    目录 一,什么是Hooks 二,为什么要使用Hooks 三,React hooks 四, useState 使用及实现 五,useEffect 使用及实现 六,如何实现多个useState, useE ...

  5. React hooks 不能拿到最新的的setState的值

    在class中,如果 我们想要拿到setState 最新的值,去调用api,直接通过this.setState的回调函数就可以了 this.setState({latestValue: "我 ...

  6. React hooks useState如何拿到更新后的值

    在class中,如果 我们想要拿到setState 最新的值,去调用api,直接通过this.setState的回调函数就可以了 this.setState({latestValue: "我 ...

  7. React Hooks 使用详解

    本文对 16.8 版本之后 React 发布的新特性 Hooks 进行了详细讲解,并对一些常用的 Hooks 进行代码演示,希望可以对需要的朋友提供点帮助. 一.Hooks 简介 Hooks 是 Re ...

  8. react hooks使用_为什么要使用React Hooks?

    react hooks使用 The first thing you should do whenever you're about to learn something new is ask your ...

  9. react hooks使用_如何使用React和Hooks检测外部点击

    react hooks使用 by Andrei Cacio 通过安德烈·卡西奥(Andrei Cacio) 如何使用React和Hooks检测外部点击 (How to detect an outsid ...

最新文章

  1. php删除空标签_PHP如何去除Html所有标签、空格以及空白
  2. LSASRV事件ID:40960
  3. Web API 实现JSONP或者安装配置Cors跨域
  4. [py]py常用模块小结
  5. 华三ap设置无线服务器,H3C无线控制器实现Remote AP功能典型配置举例(V7)
  6. 2016年最新C/C++学习路线图 附完整视频资源
  7. CNN 卷积神经网络 池化层Pooling 动手学深度学习v2 pytorch
  8. 来自Transformer + Bert + GPT 的灵魂拷问
  9. c语言60进制字母,傻瓜学习C语言进制转换
  10. c语言大作业:员工工资管理系统
  11. AdapterView详解
  12. FPGA作为电力电子设备控制器的实践
  13. 记一次android设备通过tun0网络连接上级国标平台问题
  14. 一个游戏创业者如何跳出模式
  15. 星巴克猫爪杯开售遭哄抢 淘宝同款比比皆是真假难辨
  16. 美业SaaS的创业分享之[定位]:美业SaaS的定位到底是工具还是平台
  17. 抖音上的python广告可信吗_抖音上的广告可信吗?
  18. 学英语《每日一歌》之she
  19. 05.Shell字符串处理
  20. Java中ReactiveX(RxJava)的使用

热门文章

  1. 6-24V输入升压10-36V升压芯片内置MOS大功率1A
  2. java毕业设计成品基于SpringBoot美容院预约管理系统
  3. 深入剖析TikTok零播放问题,并附解决方案
  4. 电路板中的各种“地”
  5. HDRsoft Photomatix Pro图形工具
  6. 妖怪宝可萌html5游戏,妖怪宝可萌h5斗宠棋玩法规则以及技巧分析
  7. Python实现KNN(K近邻)回归模型(KNeighborsRegressor算法)并应用网格搜索算法寻找最优参数值项目实战
  8. 从手机到电影再到神曲,这回终于轮到京东的真苹果登场了!
  9. (赶快收藏吧) 整理了50个python小技巧
  10. 使用打字稿绘图网格构建游戏3 5