public divContainer: HTMLElement;
componentDidMount(){
this.divContainer.focus()
}
buildRef = (e) => {
this.divContainer = e;
}
render() {
return (
<div ref={this.buildRef}></div>
)
}
在上面的代码中我获得了div的ref并在componentDidMount中添加了焦点。但是当我运行测试时,它会显示Cannot read property 'focus' of undefined
。在componentDidMount之前没有参考运行吗?如果是这样,那么为什么会出现这个错误?
请注意,实际组件呈现并按预期工作。它只是失败的测试。我还找到了一个解决方案,就是将this.divContainer.focus()
包裹在if (this.divContainer)
条件中。