非常感谢您的指正和提醒,我的回答中使用了 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 代码的编写风格。
标签:剩余,vue,console,args,react,warning,arguments,message From: https://www.cnblogs.com/cn-oldboy/p/17448990.html