采纳答案成功!
向帮助你的同学说点啥吧!感谢那些助人为乐的人
index.ts 文件中 React.StrictMode 包含一个 <App / > 会让你执行两次,
React.StrictMode
<App / >
root.render( <React.StrictMode> <App /> </React.StrictMode> );
能删除他吗 或者这个有什么作用
StrictMode 是一个用来检查项目中潜在问题的组件,它不会参与UI渲染,只会为嵌套元素提供检查和警告。
1、识别不安全的生命周期2、关于使用过时字符串 ref API 的警告3、关于使用废弃的 findDOMNode 方法的警告4、检测意外的副作用5、检测过时的 context API
不使用StrictMode不会对系统造成任何影响,不过为了避免错误最好使用StrictMode。至于渲染两次app的问题,错误应该来源于你的代码而不是StrictMode,因为StrictMode不参与UI渲染。
是不是 检查意外的副作用 导致的 https://juejin.cn/post/6844904084768587790 这篇文章和我情况很类似 我想表达应该是这种意思
仔细阅读了一下文档,这是我一直忽略了的情况。使用StrictMode以可能会引起部分生命周期方法的多次调用,文档https://link.zhihu.com/?target=https%3A//zh-hans.reactjs.org/docs/strict-mode.html%23detecting-unexpected-side-effects
所以,请不要在这些方法中包含副作用。我之前确实没有注意到这个问题,strictMode莫名其妙的调用,尤其是在react 17以后还修改了console的规则,对程序员不是特别友好。不过,既然react要这样处理肯定还是有它的原因,我们还是得多读文档,欢迎继续讨论这个话题。谢谢你的提问。
登录后可查看更多问答,登录/注册
React18 精讲 + 结合 TS 实战 + 热门业务开发,获取必备技能
344 5
545 8
553 2
1.4k 2
689 1