【问题标题】:How can i ignore react warnings? (Not Native app)我怎样才能忽略反应警告? (不是本机应用程序)
【发布时间】:2019-10-03 04:30:53
【问题描述】:

我在我的 react 应用中遇到了这种冲突。

它说 componentWillReceiveProps 已重命名... 但我的代码中没有“componentWillReceiveProps”,只有效果...... 也许它在节点模块里面。

所以我试图忽略它们 但我不知道怎么...

我使用了 create-react-app 我正在使用 ts-lint。

【问题讨论】:

  • @Anil Ravsaheb Ghodake 谢谢,但我的应用不是原生应用...
  • 只是出于好奇,您为什么要禁用/隐藏这些而不是仅仅解决它们的原因?它们似乎主要是您应该已经更新或应该在遇到它们时更新的弃用警告。
  • @MINJAKIM,我也同意 @Drew Reese。您可以在开发模式(调试)apk 中看到此警告。在发布模式下,您将看不到这些警告。
  • @Drew Reese 是的,但是有点奇怪,“componentWillReceiveProps”已被弃用,我没有使用它,即使它在节点模块上,我也无法处理所有节点模块。 :( 警告太多隐藏控制台。我无法轻松找到我的控制台信息,这就是我试图隐藏它们的原因。
  • @Anil Ravsaheb Ghodake 抱歉,我匆忙阅读文档。我以为它只适用于 Native !谢谢你!

标签: reactjs react-lifecycle


【解决方案1】:

很大程度上来自this answer

const error = console.error;
function logError(...parameters) {
    let filter = parameters.find(parameter => {
        return (
        // Filter error because XXX
        parameter.includes("Warning: %s is deprecated in StrictMode")
        // Another error to filter because of YYYY
        || parameter.includes("Warning:")
        );
    });
    if(!filter) error(...parameters);
}
console.error  = logError;

请注意,此代码仅适用于错误,但您可以将其复制到 console.warn 或 info

您可以在特定的 .js 文件中管理它,并将其导入 App.js 中

【讨论】:

  • 这对我启发很大。目前我也在用这个管理其他项目:)
【解决方案2】:

通过使用以下代码,您可以隐藏所需的警告

import React from 'react';
import { YellowBox } from 'react-native';
import AppNavigator from './app/main';

YellowBox.ignoreWarnings([
  'Warning: isMounted(...) is deprecated',
  'Module RCTImageLoader',
  'Class RCTCxxModule',
  'Task orphaned for request ',
  'Warning',
  'Require',
  'Missing field __typename in',
  'Node',
]);

const App = () => <AppNavigator />;
export default App;

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-04-26
    • 1970-01-01
    • 2023-01-13
    • 2020-10-19
    • 1970-01-01
    • 2014-09-07
    • 2012-05-10
    相关资源
    最近更新 更多