我们相信:世界是美好的,你是我也是。平行空间的世界里面,不同版本的生活也在继续...

在调试ReactRouter相关代码的时候,被f12调试工具下的各种React Router Future Flag Warning信息,搞得心烦意乱。这些React Router Future Flag Warning,目前并不是苏南大叔所关注的内容。所以,需要禁用掉这些提示信息。那么,如何过滤掉这些干扰信息呢?

苏南大叔:React路由,如何禁用Future Flag警告?console函数劫持 - react禁用futureflag
React路由,如何禁用Future Flag警告?console函数劫持(图2-1)

苏南大叔的“程序如此灵动”博客,记录苏南大叔的代码编程经验总结。本文测试环境:nodejs@20.18.0create-react-app@5.0.1react-router-dom@6.27.0react@18.3.1

Future Flag Warning

写点小代码,收到了一堆warning。真心是上火。收到的warning信息有:

React Router Future Flag Warning: React Router will begin wrapping state updates in `React.startTransition` in v7. You can use the `v7_startTransition` future flag to opt-in early. For more information, see https://reactrouter.com/v6/upgrading/future#v7_starttransition.
React Router Future Flag Warning: Relative route resolution within Splat routes is changing in v7. You can use the `v7_relativeSplatPath` future flag to opt-in early. For more information, see https://reactrouter.com/v6/upgrading/future#v7_relativesplatpath.
React Router Future Flag Warning: The persistence behavior of fetchers is changing in v7. You can use the `v7_fetcherPersist` future flag to opt-in early. For more information, see https://reactrouter.com/v6/upgrading/future#v7_fetcherpersist.
React Router Future Flag Warning: Casing of `formMethod` fields is being normalized to uppercase in v7. You can use the `v7_normalizeFormMethod` future flag to opt-in early. For more information, see https://reactrouter.com/v6/upgrading/future#v7_normalizeformmethod.
React Router Future Flag Warning: `RouterProvider` hydration behavior is changing in v7. You can use the `v7_partialHydration` future flag to opt-in early. For more information, see https://reactrouter.com/v6/upgrading/future#v7_partialhydration.
React Router Future Flag Warning: The revalidation behavior after 4xx/5xx `action` responses is changing in v7. You can use the `v7_skipActionErrorRevalidation` future flag to opt-in early. For more information, see https://reactrouter.com/v6/upgrading/future#v7_skipactionerrorrevalidation.

苏南大叔:React路由,如何禁用Future Flag警告?console函数劫持 - future-flag-warning
React路由,如何禁用Future Flag警告?console函数劫持(图2-2)

有个共同的特点,就是都属于“React Router Future Flag Warning”。

禁用Future Flag

在官方网站上一顿翻找,没有看到哪里可以关掉这些React Router Future Flag Warning提示信息。如果您知道,欢迎留言。
这些警告信息,应该是调用console.warn()函数输出的。所以,苏南大叔这里打算劫持console.warn()函数,来过滤掉这些恼人的信息。

参考代码:

const console_warn = console.warn;
console.warn = function (...args) {
  const message = args.join(" ");
  if (typeof message === "string" && message.includes("React Router Future Flag Warning")) {
    return;
  }
  console_warn.apply(console, args);
  // console_warn.apply(console, arguments);  //这个写法也可以
};

把这些劫持代码放到合适的位置,比如index.js文件里面,即可生效,瞬间清爽。如果需要劫持其它的警告信息,可以继续修改这个代码的逻辑。还有很大的修改空间。目前这个代码,就仅仅过滤“React Router Future Flag Warning”,其它的警告信息会继续显示的。

相关文章

其它劫持系统函数的文章,可以参考:

结语

更多苏南大叔的react经验文章,请点击下面的链接:

如果本文对您有帮助,或者节约了您的时间,欢迎打赏瓶饮料,建立下友谊关系。
本博客不欢迎:各种镜像采集行为。请尊重原创文章内容,转载请保留作者链接。

 【福利】 腾讯云最新爆款活动!1核2G云服务器首年50元!

 【源码】本文代码片段及相关软件,请点此获取更多信息

 【绝密】秘籍文章入口,仅传授于有缘之人   react