我在确定componentWillUpdate
触发器的确切位置时遇到了一些麻烦。文档说它在渲染之前触发。但是在我的组件中,唯一更改的道具是defaultValue
,这不会影响udpate上的DOM。那我的componentWillUpdate
怎么会触发?我认为只有在对道具/状态进行测试后才会触发它,看它是否真的改变了虚拟DOM。
答案 0 :(得分:2)
projB
与DOM是否会更新无关。它仅用作钩子,在渲染之前对道具执行某些操作。如果你想在道具发生变化时阻止组件渲染,那么你需要在ComponentWillUpdate()
内部返回false注意shouldComponentUpdate()
在第一次运行(挂载)时不会调用你要使用的ComponentWillUpdate()
}