Reactjs 我怎样才能抑制“我怎么能抑制”呢;标签<;一些标签>;在此浏览器中无法识别;反应中的警告?
我在React中使用了带有自定义标记名的元素,并得到了这些错误的墙。关于主题()有一个GitHub问题,其中有人指出: 这是React 16中的新警告消息。与动画/反应动画无关,此警告可以安全忽略 可以安全地忽略它是很好的,但是当我的代码在控制台中充满无用的错误消息时,它仍然无法通过仔细检查Reactjs 我怎样才能抑制“我怎么能抑制”呢;标签<;一些标签>;在此浏览器中无法识别;反应中的警告?,reactjs,warnings,Reactjs,Warnings,我在React中使用了带有自定义标记名的元素,并得到了这些错误的墙。关于主题()有一个GitHub问题,其中有人指出: 这是React 16中的新警告消息。与动画/反应动画无关,此警告可以安全忽略 可以安全地忽略它是很好的,但是当我的代码在控制台中充满无用的错误消息时,它仍然无法通过仔细检查 如何抑制这些警告?我不相信有一种内置方法可以抑制错误消息 警告消息已正确记录。您可以直接从dom中删除错误消息。对于这样一个小的更改,也许使用类似的东西会很有用,因此您不必维护fork。更新: 使用正确的解
如何抑制这些警告?我不相信有一种内置方法可以抑制错误消息
警告消息已正确记录。您可以直接从dom中删除错误消息。对于这样一个小的更改,也许使用类似的东西会很有用,因此您不必维护fork。更新: 使用正确的解决方案查看@triple的答案: 原始名称: 我不是说你真的应该这么做,但你可以钩住
控制台。错误并在反应动画加载之前的某个地方过滤此消息:
const realError = console.error;
console.error = (...x) => {
// debugger;
if (x[0] === 'Warning: The tag <g> is unrecognized in this browser. If you meant to render a React component, start its name with an uppercase letter.') {
return;
}
realError(...x);
};
const realError=console.error;
console.error=(…x)=>{
//调试器;
if(x[0]=='警告:此浏览器中无法识别标记。如果要呈现React组件,请以大写字母开头其名称。“){
返回;
}
realError(…x);
};
它似乎对您至少链接的GitHub问题中发布的内容起到了作用:3我找到了解决此问题的潜在方法-如果您使用的是插件(可能在其他情况下),则可以使用is
属性
使用X3d时发现-只需编写
作品我的解决方案是创建信封组件,该组件使用所需的类呈现
:
import React, {Component, DetailedHTMLFactory, HTMLAttributes} from "react";
import classNames from "classnames";
export default class SimpleTagComponent extends Component<SimplePropTypes>{
baseClassName = 'simpleComponent'
render() {
return React.createElement(
'div',
{
...this.props,
className: classNames(this.baseClassName, this.props.className),
},
this.props.children
);
}
}
type SimplePropTypes = HTMLAttributes<HTMLDivElement>
export class MyTag extends SimpleTagComponent {
baseClassName = 'my'
}
import React,{Component,DetailedHTMLFactory,HTMLAttributes}来自“React”;
从“类名”中导入类名;
导出默认类SimpleTagComponent扩展组件{
baseClassName='simpleComponent'
render(){
返回React.createElement(
"div",,
{
…这是道具,
className:className(this.baseClassName,this.props.className),
},
这是道具
);
}
}
类型SimplePropTypes=HTMLAttributes
导出类MyTag扩展SimpleTagComponent{
baseClassName='my'
}
您想在开发过程中消除污染吗?因为这些警告不应该出现在产品构建中,这是一个相当大的警告墙。页面上每种类型的元素对应一个。我想在开发中消除污染。到目前为止,我找到的最简单的解决办法是在每个可能的标签前面加上“x-”。关于html中的x标记,有一条鲜为人知的古老规则,规定任何以“x-”开头的标记都可以使用。您在组件中呈现的是什么标记我不再参与该项目,因此我无法验证这是否有效,但这似乎是解决问题的一个很好的方法。如果把它放在dev env环境的后面,它看起来会工作得很好,而不会损害任何东西。这是一个黑客程序,但我喜欢它+我可以确认一下。这应该是公认的答案。通过向自定义元素添加“is”标记,我还成功地删除了警告。任何值都有效,例如:is=“custom”。即使只有一个空间也足够了。如果有人在这里,我可以通过使用webview来解决这个问题。