首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >是否有方法检查React的“`StrictMode`”是否已打开?

问是否有方法检查React的“`StrictMode`”是否已打开?
EN

Stack Overflow用户
提问于 2022-06-07 00:38:21
回答 1查看 902关注 0票数 6

是否有一种反应的方式--无论是在代码中,还是通过React -看看在我的梦世界中,一个组件是否在StrictMode中呈现,我可以用某种常量(),比如React.isStrictModeOnForThisComponentRendering;或者,当您检查React中的一个组件时,它会在侧面面板的某个地方表示它是否在StrictMode中呈现。

要明确的是,这个问题是:

  • 而不是关于如何启用StrictMode。(答案是<React.StrictMode>,尽管它也可以通过信任某些框架(例如Next.js)来设置)
  • 具体讨论了React的StrictMode、not JavaScript's ('use strict';)或打字本的严格模式。这是个过载的短语,但守望者会这么做吗?
  • 由于混乱的动机,你得到了意外的双重渲染与反应的StrictMode。请参阅这个GitHub问题或这个StackOverflow帖子以了解它可能造成的挫折感。最好有一种简单的方法来验证组件正在StrictMode中运行,即使您无法知道组件树中的哪个位置已经启用了StrictMode。
EN

回答 1

Stack Overflow用户

发布于 2022-06-25 00:45:50

这并不是一种明确或明确的方式,但您可以故意触发一个只发生在React的StrictMode中的警告。例如:

  • 您可以有目的地创建一个使用不安全生命周期的虚拟组件,以及它应该触发一个警告。这有点麻烦,因为--如果您在整个应用程序中只使用功能组件--您必须创建一个类组件来使用不安全的生命周期方法。
  • 您可以在组件和它应该触发一个警告中有目的地使用(不推荐的) string。这比上面的功能组件更简单,但更丑:您可以将它放入任何组件的JSX中,但如果它是一个功能组件,则会导致应用程序完全崩溃。但是,至少在应用程序中断之前,警告应该仍然出现。警告:我刚刚试着复制它,虽然我仍然相信我的应用程序在React中,但我再也不能像我以前看到的那样让字符串ref触发警告,它只是破坏了应用程序。不确定已经改变了什么,或者我正在进行不同的操作,但这可能不像上面的选项那样好。

在任何情况下,此警告都将包含如下文本

代码语言:javascript
复制
... found within a strict-mode tree ...

这似乎合理地证明了组件正在StrictMode中呈现。最好有一个更直接的助手函数,但它在紧要关头工作。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72524752

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档