Html 反应-是否有任何方法可以忽略嵌入式<;风格>;标签?

Html 反应-是否有任何方法可以忽略嵌入式<;风格>;标签?,html,css,reactjs,Html,Css,Reactjs,在我的react项目中,我从RESTAPI得到了一些作为HTML文档的响应 在某些场景中,有一些嵌入式样式css作为响应,它覆盖了我的项目css 基本上,我想忽略嵌入式样式。任何帮助都将不胜感激 已解决:-检查下面的解决方案(使用正则表达式)那么为什么不使用正则表达式并在两者之间剪切所有内容呢 CSS来自响应 ? 然后将其替换为空字符串“” 这是一个正则表达式,可以让你做到这一点 const regex=/(.|\s)*?)/gim 那么,为什么不使用正则表达式并在两者之间剪切所有内容呢 CS

在我的react项目中,我从RESTAPI得到了一些作为HTML文档的响应

在某些场景中,有一些嵌入式样式css作为响应,它覆盖了我的项目css

基本上,我想忽略嵌入式样式。任何帮助都将不胜感激


已解决:-检查下面的解决方案(使用正则表达式)

那么为什么不使用正则表达式并在两者之间剪切所有内容呢
CSS来自响应
? 然后将其替换为空字符串“”

这是一个正则表达式,可以让你做到这一点
const regex=/(.|\s)*?)/gim


那么,为什么不使用正则表达式并在两者之间剪切所有内容呢
CSS来自响应
? 然后将其替换为空字符串“”

这是一个正则表达式,可以让你做到这一点
const regex=/(.|\s)*?)/gim


这里有一个简单的函数,可以删除节点中嵌入的
元素:

const removeStyle = node => [...node.querySelectorAll('style')].forEach(sheet => sheet.parentNode.removeChild(sheet));
现在,您需要在包含API响应中的html的节点上调用此函数,这可能是使用
DangerouslySetinerHTML
设置的。要到达那里,你需要一个
ref
发送到节点,并在HTML发生更改时将其传递给样式清理函数

类包装器扩展React.Component{
建造师(道具){
超级(道具);
this._node=React.createRef();//在render()中创建要分配给的ref
此.state={
内容:“”
}
}
componentDidMount(){
//模拟API调用
设置超时(()=>
这是我的国家({
内容:html
}), 200);
}
componentDidUpdate(prevProps、prevState){
//如果已禁用this.state.content,则在节点上调用removeStyle
prevState.content!==this.state.content&&removeStyle(this.\u node.current);
}
render(){
返回
}
}

这里有一个简单的函数,可以删除节点中嵌入的
元素:

const removeStyle = node => [...node.querySelectorAll('style')].forEach(sheet => sheet.parentNode.removeChild(sheet));
现在,您需要在包含API响应中的html的节点上调用此函数,这可能是使用
DangerouslySetinerHTML
设置的。要到达那里,你需要一个
ref
发送到节点,并在HTML发生更改时将其传递给样式清理函数

类包装器扩展React.Component{
建造师(道具){
超级(道具);
this._node=React.createRef();//在render()中创建要分配给的ref
此.state={
内容:“”
}
}
componentDidMount(){
//模拟API调用
设置超时(()=>
这是我的国家({
内容:html
}), 200);
}
componentDidUpdate(prevProps、prevState){
//如果已禁用this.state.content,则在节点上调用removeStyle
prevState.content!==this.state.content&&removeStyle(this.\u node.current);
}
render(){
返回
}
}

您可以使用
!重要信息
在您的项目CSS中,覆盖API带来的样式,或使您的项目CSS不太通俗,但不喜欢使用!重要的。无论如何,谢谢你的回答@ethvlad。你可以使用
!重要信息
在您的项目CSS中,覆盖API带来的样式,或使您的项目CSS不太通俗,但不喜欢使用!重要的。无论如何,感谢您的回答@ethvlad。我得到的不仅仅是整个html文档作为响应,所以响应的示例如下:-
一些html一些css
Regex可能会适得其反,随着新测试用例的出现,您可能会发现自己在不断完善表达式。例如,此项不会处理
样式
标记上的属性,例如
。顺便说一句,不需要
|\s
,因为
*
也匹配
\s
。感谢@pawel的回复。稍后我们计划在iframe中呈现该文档。regex稍微好一点(使用attr处理),但不保证它将涵盖所有内容:
/]*>(.|\W)*/gmi
我得到的不仅仅是整个html文档的响应,因此,响应的示例如下:-
一些html一些css
Regex可能会适得其反,随着新测试用例的出现,您可能会发现自己在不断完善表达式。例如,此项不会处理
样式
标记上的属性,例如
。顺便说一句,不需要
|\s
,因为
*
也匹配
\s
。感谢@pawel的回复。稍后,我们计划在iframe中呈现该文档。regex稍微好一点(使用attr处理),但不保证它将涵盖所有内容:
/]*>(.|\W)*/gmi