【发布时间】:2015-03-05 07:51:34
【问题描述】:
我正在尝试在我的 react 组件上添加一个脚本,并且每次渲染组件时都必须调用此脚本..
这是一个例子:
var ReactComponent = React.createClass({
render: function() {
var html = '<script>console.log("A")</script>';
console.log("B");
return (
<div>
<div dangerouslySetInnerHTML={{__html: html}} />
</div>
);
}
});
但是当我查看我的控制台时,我得到了这个组件的 3 个渲染:
B
A // Logged the first render
B // Now, only the 'B' is called.
B
代替
B
A // Log A every time
B
A // Log A every time
B
A // Log A every time
【问题讨论】:
-
内容没有改变,所以 React 跳过了真正的 DOM 的改变。
render每次都被调用,但是文档中的<script>没有被重写。这是设计使然。
标签: javascript reactjs script-tag