Javascript 如果在React应用程序中this.refs不可用,如何访问函数中的DOM元素?
我正在制作一个React应用程序,并使用它来实现modalsJavascript 如果在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
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();}