Javascript 参考属性';焦点';未在componentDidMount中定义 public divContainer:HTMLElement; componentDidMount(){ this.divContainer.focus() } buildRef=(e)=>{ this.divContainer=e; } render(){ 返回( ) }

Javascript 参考属性';焦点';未在componentDidMount中定义 public divContainer:HTMLElement; componentDidMount(){ this.divContainer.focus() } buildRef=(e)=>{ this.divContainer=e; } render(){ 返回( ) },javascript,reactjs,typescript,jestjs,Javascript,Reactjs,Typescript,Jestjs,在上面的代码中,我得到了div的一个ref,并在componentDidMount中将焦点添加到它。但是当我运行测试时,它说无法读取未定义的的属性“focus”。在componentDidMount之前不运行ref吗?如果是,那么为什么会出现这种错误 请注意,实际组件按预期呈现和工作。只是测试失败了。我还找到了一个解决方案,那就是在此if(this.divContainer)条件中包装this.divContainer.focus() public divContainer: HTMLEleme

在上面的代码中,我得到了div的一个ref,并在componentDidMount中将焦点添加到它。但是当我运行测试时,它说
无法读取未定义的
的属性“focus”。在componentDidMount之前不运行ref吗?如果是,那么为什么会出现这种错误

请注意,实际组件按预期呈现和工作。只是测试失败了。我还找到了一个解决方案,那就是在此
if(this.divContainer)
条件中包装
this.divContainer.focus()

public divContainer: HTMLElement;

componentDidMount(){
  this.divContainer.focus()
}

buildRef = (e) => {
  this.divContainer = e;
}

render() {
  return (
    <div ref={this.buildRef}></div>
  )
}