关于React的Github问题已经对此进行了简要讨论。我会尽力解释这一点,但是很难用语言表达。
由于在第二个示例中您没有调用“智能”组件方法,因此
console.log(el)每次重新渲染组件时都会发生这种情况,这意味着当特定节点(在本例中为您的输入)被删除并再次呈现时,它也会调用,不管
el实际是否改变。当它被React移除时,它会返回,
null因为该元素不再存在,即使只是一秒钟的时间。似乎是为了完成而这样做。
这是Dan Abramov
的一条推文,对此做了一些解释。

关于React的Github问题已经对此进行了简要讨论。我会尽力解释这一点,但是很难用语言表达。
由于在第二个示例中您没有调用“智能”组件方法,因此
console.log(el)每次重新渲染组件时都会发生这种情况,这意味着当特定节点(在本例中为您的输入)被删除并再次呈现时,它也会调用,不管
el实际是否改变。当它被React移除时,它会返回,
null因为该元素不再存在,即使只是一秒钟的时间。似乎是为了完成而这样做。
这是Dan Abramov
的一条推文,对此做了一些解释。