reactHooks_useEffect
当在直接在组件内使用setState时,会产生“渲染次数过多”的错误
例如:
const A = ( ) => {
const [num,setNum] = useState(1);
setNum(1);
return (<>{num}</>);
};
虽然之前的num与之后的num内容一致,应不会产生渲染
但setNum() 之后的内部方法是 dispatchSetDate(),它会去判断当前在什么阶段
如果是渲染阶段(个人理解是A组件运行过程中)则不会检查num值是否相同,每次setNum()过后都会重新渲染(执行A组件),导致死循环
等A组件过程结束,则会检查num值是否相同。
一般这种情况,可以使用useEffect
reactHooks_useEffect的更多相关文章
随机推荐
- libnode使用addon
自己编译的一个libnode.so后,在js里调用hello.node的 addon时候会报错. Error: dlopen failed: cannot locate symbol "na ...
- SWUpdate(Suricatta) + Hawkbit Server
SWUpdate的详细介绍 https://community.nxp.com/pwmxy87654/attachments/pwmxy87654/imx-processors%40tkb/5632/ ...
- ELKF搭建
logstash cat /etc/logstash/logstash.yml |grep -v '#'path.data: /data/logstash/datapipeline.ordered: ...
- 【C和指针】6.指针
1.指针变量的内容 int a=112, b=-1; float c=3.14; int *d=&a; int *e=&c; (1) 变量d和e被声明为指针,并用其他变量的地址予以初始 ...
- centos6.5升级python3.6并安装boto3模块
1.先升级openssl yum安装各种依赖,yum install gcc gcc-c++ autoconf automake zlib zlib-devel pcre-devel tar zxvf ...
- git将自己分支上忽略已修改但不需要的提交的文件
一:在idea上把需要提交的文件勾选上提交 二:git stash命令将余下被修改的文件存入(隐藏)暂存区 git stash 三:切换master分支合并上述分支 四:合并后再返回上述分支,git ...
- 2020ICPC上海I - Sky Garden
思维 [I-Sky Garden_第 45 届国际大学生程序设计竞赛(ICPC)亚洲区域赛(上海)(重现赛)@hzy0227 (nowcoder.com)](https://codeforces.co ...
- tp3.2 写入日志
function logs($content, $subDir = ''){ $subDir = trim($subDir, '/\\'); if (empty($content)) return f ...
- 学习canvas的vscode提示问题
在代码中加入/** @type {HTMLCanvasElement} */ 即可 1 <script> 2 /** @type {HTMLCanvasElement} */ 3 let ...
- WDA学习(21):WDA Popup,Message,Focus
1.14 WDA Popup,Message,Focus WDA测试Popup,Message,光标Focus功能. 1.创建Component; COMPONENTCONTROLLER页签 Cont ...