我有一个关于使用react的问题。从标题可以看到,我想知道是否可以在“
dangerouslySetInnerHTML”属性内使用React组件(由React.createClass创建)。我已经尝试过了,但是React只是打印代码而不进行如下转换:
const MySubComponent = React.createClass({
render() {
return (<p>MySubComponent</p>);
}
});
...
let myStringHTML;
myStringHTML += "<ul>";
myStringHTML += " <li>";
myStringHTML += " <MySubComponent />";
myStringHTML += " </li>";
myStringHTML += "</ul>";
const MyComponent = React.createClass({
render() {
return (
<div dangerouslySetInnerHTML={{__html:myStringHTML}}></div>
);
}
});
我期望
<ul>
<li>
<p>MySubComponent</p>
</li>
</ul>
但是代码与原始字符串相同,这意味着React并未转换MySubComponent。
有办法解决这个问题吗?上面的例子很简单,但是我的实际代码却很复杂。这将非常感谢gimme的帮助;)
dangerouslySetInnerHTML
期望具有__html
属性的JS对象应该是有效的HTML标记。相反,您在<MySubComponent />
那儿提供并期望它呈现该组件的html。React不会<MySubComponent />
在那里处理。dangerouslySetInnerHTML
顾名思义,应避免使用。而且,您要在此处完成的任务仅可以通过React轻松完成。
const MySubComponent = React.createClass({
render() {
return (<li><p>MySubComponent {this.props.index}</p></li>);
}
});
const MyComponent = React.createClass({
render() {
let subComponentList = [];
[1,2,3,4,5].forEach(function(i){
subComponentList.push(<MySubComponent key={i} index={i} />);
});
return (
<ul>{subComponentList}</ul>
);
}
});
ReactDOM.render(<MyComponent />, mountNode);
问题内容: 我正在用React制作电视指南。我正在从此API中获取表演信息:http : //api.tvmaze.com/episodes/333 如您所见,包含html。如果我渲染该字段。那么HTML将被解释为字符串,这意味着您可以在页面上看到标签等。 我知道我可以使用,但出于安全原因不建议使用。最佳做法是什么?从API获取格式化的文本并需要呈现它必须非常普遍。我很惊讶,没有一个过滤器,这将允
问题内容: 与在元素上设置元素的innerHTML与在元素上设置危险地设置InnerHTML属性有什么“幕后”区别?假设为简单起见,我正在对事物进行适当的消毒。 例: 与 我做的事情比上面的示例复杂一些,但总体思路是相同的 问题答案: 是,有一点不同! 使用vs 的直接效果是相同的-DOM节点将使用注入的HTML更新。 但是 ,在使用它时,让React 在幕后知道该组件内部的HTML并不是它关心的
这个问题可能是泛泛的,但我试图理解这里的主要含义。 我正在尝试使用BCEL库进行一些字节码工程,部分工作流程要求我多次读取同一字节码文件(从一开始)。流程如下 在第4步中,我需要重置标记或获取流,就像它是从一开始的一样。我知道以下选择。 1)使用包装流-有机会获得“重置为无效标记”IOException 2)使用ByteArrayInputStream包装它-即使一些在线研究表明它是错误的,它仍然
问题内容: 如何获得内部脚本 dangerouslySetInnerHTML 得到执行? 我无法执行 有人可以帮忙吗?谢谢 问题答案: 您不能这样做,因为为了安全起见,脚本标签会自动删除。 使用javascript的最佳方法是单独获取字符串,然后从 componentWillMount 或 componentDidMount 执行(或评估)它 __ 您显然可以使用任何字符串。我想您可能正在从服务器
问题内容: 我有以下用例。 我的React组件中加载了一些第三方来源的HTML: 在外部加载的HTML内,存在一个针对特定范围的click事件,该事件应调用存在于我的应用程序中的回调函数。 我该把 myCallback 函数放在哪里? 如果将其放在组件类中,则单击跨度时会收到以下错误,因为据我了解,该函数对外部加载的HTML不可见: Uncaught ReferenceError:在HTMLSpa
我有一个HTML,使用 我想做的是懒惰加载图像的性能。我尝试了几个包,如react-lazyload,但它似乎并没有懒惰加载图像的方式。如果我将超文本标记语言字符串拉到React组件中,它确实有效。 延迟加载如何处理从加载的图像?我怎样才能懒散地加载图像?
本文向大家介绍CodeIgniter框架过滤HTML危险代码,包括了CodeIgniter框架过滤HTML危险代码的使用技巧和注意事项,需要的朋友参考一下 CodeIgniter过滤HTML危险代码的方法其实有好几种,其中最常见的有如下几种: 1.可以选择使用htmlspecialchars()方法过滤。 2.可以将config文件夹下面的config.php文件中的$config['global
问题内容: 是否可以从外部源获取HTML / JSX内容并在React中动态呈现它?在我们的例子中,我们想从Wordpress API中获取内容,并在客户端和服务器上都进行渲染(我们正在使用NextJS) 因此,Wordpress API返回一个JSON响应,其中包括一个content属性,该属性是一串HTML / JSX。内容看起来像这样。 因此,如您所见,它将是HTML和React组件/ JS