react项目,或者vue项目。手动隐藏warning。保持控制台的清晰

发布时间 2023-06-01 14:54:28作者: 风意不止

非常感谢您的指正和提醒,我的回答中使用了 arguments 对象,而这不是一个好的实践。可以使用 ES6 的剩余参数(rest parameters)来代替 arguments 对象。

以下是使用剩余参数替换 arguments 对象的示例代码:

import React from 'react';
import ReactDOM from 'react-dom';

const consoleError = console.error;

console.error = function (...args) {
  const message = args.join(' ');

  if (
    typeof message === 'string' &&
    message.startsWith('Warning: ') &&
    !message.includes('Warning: componentWillReceiveProps has been renamed')
  ) {
    return;
  }
  consoleError.apply(console, args);
};

ReactDOM.render(<App />, document.getElementById('root'));

在这里,我们使用剩余参数 ...args 来代替 arguments 对象,同时使用 join(' ') 方法来将剩余参数转换为一个字符串。然后我们检查警告信息是否以 Warning: 开头,并忽略指定的警告信息。控制台输出错误信息时,我们同样使用了 apply() 方法来将参数传递给 consoleError 方法。

需要注意的是,使用剩余参数可以使代码更加清晰易懂,同时也更符合现代 JavaScript 代码的编写风格。