Javascript 如果在React应用程序中this.refs不可用,如何访问函数中的DOM元素?

Javascript 如果在React应用程序中this.refs不可用,如何访问函数中的DOM元素?,javascript,dom,reactjs,ecmascript-6,Javascript,Dom,Reactjs,Ecmascript 6,我正在制作一个React应用程序,并使用它来实现modals export default class SomeComponent extends Component { ... render() { return ( ... <SkyLight ref="improveTaskModal"> <form> <input type="text" ref="myInput" /&g

我正在制作一个React应用程序,并使用它来实现modals

export default class SomeComponent extends Component {
  ...
  render() {
    return (
      ...
        <SkyLight ref="improveTaskModal">
          <form>
            <input type="text" ref="myInput" />
      ...
    );
  }
}
但是,这里的
指的是

Object { 
  hideOnOverlayClicked: true, 
  afterOpen: wrapMethod/<(),
  dialogStyles: Object,
  title: "Improve task", 
  children: Object,
  showOverlay: true,
  overlayStyles: Object,
  closeButtonStyle: Object
}
对象{
希德:没错,

afterOpen:wrapMethod/看起来您并没有将组件的此引用绑定到
\u executeAfterModalOpen


在组件构造函数中。

@syousif解决方案是正确的。您需要将函数与类的上下文绑定。除此之外,如果您希望在模态加载后立即集中精力,则必须在componentDidMount中执行此操作,因此您可以这样做,而不是像这样执行函数:

componentDidMount(){this.refs.myInput.focus();}

您不需要绑定此函数,因为它是组件类函数。

我可能误解了这个问题,但函数“\u executeAfterModalOpen”在整个reactjs代码中究竟位于何处?
this._executeAfterModalOpen = this._executeAfterModalOpen.bind(this)
componentDidMount(){this.refs.myInput.focus();}