如何获得内部脚本 dangerouslySetInnerHTML 得到执行?
class Page extends Component {
render() {
return (
<script
dangerouslySetInnerHTML={{ __html: `
console.log('hello world');
window.dataLayer = window.dataLayer || [];
window.dataLayer.push({
event: 'viewCart'
});
` }}
/>
);
}
}
我无法console.log('hello world')
执行 有人可以帮忙吗?谢谢
您不能这样做,因为为了安全起见,脚本标签会自动删除。
使用javascript的最佳方法是单独获取字符串,然后从 componentWillMount 或 componentDidMount
执行(或评估)它 __
class Page extends Component {
componentDidMount() {
const jsCode = `
console.log('hello world');
window.dataLayer = window.dataLayer || [];
window.dataLayer.push({
event: 'viewCart'
})
`;
new Function(jsCode)();
}
// you can do something else here
render() {
return (
<noscript />
);
}
}
您显然可以使用任何字符串。我想您可能正在从服务器加载它。
在上面的示例中,我使用了与之new Function()()
非常相似eval()
但运行更快的示例。
我用过,componentDidMount
所以我确定脚本在显示视图后执行。Will和Did挂载之间的另一个区别是,Will挂载在通用(同构)应用程序的服务器和客户端上执行,而Did挂载将仅在通用应用程序的客户端上执行。
在具有管道和转发功能的MIPS体系结构上: add指令将在步骤3(执行操作)准备好结果,但我假设sw指令希望在步骤2(指令解码)得到结果 David A. Patterson的《计算机组织与设计》一书中有一个已解决的练习:在以下代码段中找到危险并重新排序指令以避免任何管道停滞: 解决方案: 在解决方案中,它正确识别加载使用危险并相应地重新排列代码,但是否也存在执行存储危险?
问题内容: 如何禁用危险的 评估 功能?可以使用 ini_set 函数完成吗? 还有如何禁用以下功能?我们可以使用 ini_set 函数禁用它们吗? 评估 是坏人可用来开发事物的最危险功能之一。应该有一种无需使用 php.ini 文件就可以禁用它的机制。但应以编程方式完成。 好吧,伙计们,我正在寻找一个答案,建议他们禁用这些危险的可爱家伙,而无需进入 php.ini 文件;我的意思是如何在运行时或
问题内容: 为什么这么危险? 为什么建议改为使用? 我知道已弃用。还有什么使它不安全的? 有什么地方可以使用方法吗?如果是这样,请举一个例子。 问题答案: 为什么Thread.stop()如此危险? 此处详细描述了这些问题:http : //download.oracle.com/javase/6/docs/technotes/guides/concurrency/threadPrimitiveD
问题内容: 与在元素上设置元素的innerHTML与在元素上设置危险地设置InnerHTML属性有什么“幕后”区别?假设为简单起见,我正在对事物进行适当的消毒。 例: 与 我做的事情比上面的示例复杂一些,但总体思路是相同的 问题答案: 是,有一点不同! 使用vs 的直接效果是相同的-DOM节点将使用注入的HTML更新。 但是 ,在使用它时,让React 在幕后知道该组件内部的HTML并不是它关心的
问题内容: 我有一个简单的Python脚本,如果满足条件,我想停止执行。 例如: 本质上,我正在寻找一种与函数主体中的’return’关键字等效的行为,该关键字允许代码流退出该函数而不执行其余代码。 问题答案: 要退出脚本,您可以使用, 您还可以提供退出状态值,通常是整数。 以零退出,这通常被解释为成功。非零代码通常被视为错误。默认值为零退出。 打印“ aa!错误!” 并以状态代码1退出。 os模
问题内容: 我不记得在哪里,但是最近我发表了一条评论,用户告诉我1TBS在JavaScript中比Allman更受青睐,并说Allman在JavaScript中有危险的含义。 这是有效的声明吗?如果是这样,为什么? 问题答案: 不能这样做: 被视为(return )而不是(return an object) 有关更多信息,请参见规则。