如果component在其render函数中返回null,为什么会触发componentDidMount?

时间:2018-08-13 12:27:39

标签: javascript reactjs

我已经使用React一段时间了,但是今天我开始怀疑一件事。

为什么即使我的渲染函数返回了componentDidMount,也会触发null方法?

来自docs

  

componentDidMount()在组件被调用后立即被调用   安装(插入树中)。需要DOM的初始化   节点应该去这里。如果您需要从远程端点加载数据,   这是实例化网络请求的好地方。

据我正确理解:组件返回null,因此DOM树中没有要挂载的内容,并且不应该触发componentDidMount

1 个答案:

答案 0 :(得分:6)

componentDidMount()将在render()之后完全触发!所以您是说您的渲染函数返回null,这意味着渲染函数将执行!

证明:

如果将console.log放在渲染函数中,恰好在return之前(我通常会花很多时间检查状态更新或检查当前组件是否从父组件接收道具)在控制台中看到该日志结果,这意味着javascript执行了渲染。

nulljsx的一百行无关紧要