我正在上Edx的React JS课程。在测试中,要求输出以下代码。我回答了1。但实际上答案是0。它实际上是渲染0。有人可以告诉原因吗?
var num = 0;
var element = <div> {num} </div>
ReactDOM.render(
element,
document.getElementById("root")
)
num++;
ReactDOM.render(
element,
document.getElementById("root")
)
num++;
最佳答案
因为element
是React.Element
的实例。只有通过setState()
或其他状态/属性修改生命周期方法更新状态后,React元素才会更新。就您而言,element
没有任何更新的原因-它的行为就像创建了num
变量的副本一样,因此任何侧面更改都不会影响element
,并且ReactDOM.render
将始终使用以下内容呈现element
初始值已传递。
希望,我已经清楚地解释了,它将对您有帮助:)