如何在 React 应用程序中不可用的函数中访问 DOM 元素
How do I access a DOM element in a function where this.refs is unavailable in a React app?
我正在制作一个 React 应用程序并使用 http://marcio.github.io/react-skylight/来实现模态。
export default class SomeComponent extends Component {
...
render() {
return (
...
<SkyLight ref="improveTaskModal">
<form>
<input type="text" ref="myInput" />
...
);
}
}
我想在模态打开后立即专注于输入元素。所以,我试着做
_executeAfterModalOpen(){
this.refs.myInput.focus();
}
但是,这里this
指的是
Object {
hideOnOverlayClicked: true,
afterOpen: wrapMethod/<(),
dialogStyles: Object,
title: "Improve task",
children: Object,
showOverlay: true,
overlayStyles: Object,
closeButtonStyle: Object
}
看起来
您并没有将组件的此引用绑定到_executeAfterModalOpen
。
放
this._executeAfterModalOpen = this._executeAfterModalOpen.bind(this)
在组件构造函数中。
@syousif解决方案是正确的。 您需要将函数与类的上下文绑定。除此之外,如果你想在模态加载后立即集中注意力,那么你必须在 componentDidMount 中执行此操作,所以你可以这样做而不是函数:
componentDidMount(){this.refs.myInput.focus();}
并且您不需要绑定此函数,因为它是组件类函数。
相关文章:
- javascript函数访问ios本机功能
- 从嵌套函数访问函数属性
- 将typescript函数访问到angular中
- 全局变量只能由第一个函数访问
- Javascript从匿名函数访问外部对象属性
- UI网格:如何从自定义函数访问MODEL_COL_FIELD
- 在jQuery中,我如何从$.ajax回调函数访问$(this)
- 如何在JavaScript中停止从特定函数访问某些函数和变量
- 从jQuery.ech()函数访问外部作用域
- Angular2/Typescript:从链接可观察函数访问实例变量
- 局部变量仍可通过函数访问
- 从Kendo中的columns.filterable.cell.template函数访问列字段名
- 可以't从JS函数访问combodate
- 如何在javascript中将变量从一个函数访问到另一个函数
- jQuery从PHP函数访问Ajax响应
- 如何从json函数访问javascript中的基类变量
- 在OPP JS中,您可以从构造函数访问原型函数内部声明的方法
- Javascript 使用函数访问其他类
- 从 JavaScript 中的私有函数访问公共函数
- 为什么我无法从茉莉花中的 javascript 函数访问全局变量