当在直接在组件内使用setState时,会产生“渲染次数过多”的错误
例如:
const A = ( ) => {
const [num,setNum] = useState(1);
setNum(1);
return (<>{num}</>);
};
虽然之前的num与之后的num内容一致,应不会产生渲染
但setNum() 之后的内部方法是 dispatchSetDate(),它会去判断当前在什么阶段
如果是渲染阶段(个人理解是A组件运行过程中)则不会检查num值是否相同,每次setNum()过后都会重新渲染(执行A组件),导致死循环
等A组件过程结束,则会检查num值是否相同。
一般这种情况,可以使用useEffect
标签:const,渲染,reactHooks,num,setNum,组件,useEffect From: https://www.cnblogs.com/1-QAQ-3/p/16888336.html