React Hooks: useEffect()调用了两次问题分析
正文
使用create-react-app脚手架创建的React前端项目,在函数式组件中使用useEffect加载接口数据时 发现一个奇怪的问题:刷新页面接口调用了两次!!。
代码分析
useEffect(() => {
const wrapper = async () => {
await fetchData();
}
wrapper().then(r => {});
}, [param])在 React Hooks: useEffect() is called twice even if an empty array is used as an argument 找到了答案。
原因
原因是开发环境使用了React严格模式,代码编译后在正式环境不会出现这样的问题。
如果在开发环境不想出现这种情况,可以在index.tsx中找到下面的代码:
root.render(
<React.StrictMode>
<RouterProvider router={router}/>
</React.StrictMode>
);修改为:
root.render(
<RouterProvider router={router}/>
);问题解决。
以上就是React Hooks: useEffect()调用了两次问题分析的详细内容,更多关于React Hooks useEffect()调用的资料请关注脚本之家其它相关文章!
相关文章
从零搭建Webpack5-react脚手架的实现步骤(附源码)
本文主要介绍了从零搭建Webpack5-react脚手架的实现步骤,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下2021-08-08
React router cache route实现缓存页面流程介绍
react-router自身没有路由缓存的特性,在5.x版本之前,我们可以基于react-router-cache-route来实现路由缓存功能。但是react-router 6.x在实现上做了比较大的变化,react-router-cache-route没有提供相应的支持2023-01-01
create-react-app全家桶router mobx全局安装配置
这篇文章主要为大家介绍了create-react-app全家桶router mobx全局安装配置,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪2022-06-06
深入学习TypeScript 、React、 Redux和Ant-Design的最佳实践
这篇文章主要介绍了深入学习TypeScript 、React、 Redux和Ant-Design的最佳实践,TypeScript 增加了代码的可读性和可维护性,拥有活跃的社区,,需要的朋友可以参考下2019-06-06
React中的setState使用细节和原理解析(最新推荐)
这篇文章主要介绍了React中的setState使用细节和原理解析(最新推荐),前面我们有使用过setState的基本使用, 接下来我们对setState使用进行详细的介绍,需要的朋友可以参考下2022-12-12


最新评论