Ref property' focus'在componentDidMount中未定义

时间:2018-06-13 01:47:05

标签: javascript reactjs typescript jestjs

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)条件中。

0 个答案:

没有答案