Вы можете использовать ref
опору для получения ссылки на базовый объект HTMLInputElement через обратный вызов, сохранить ссылку как свойство класса, а затем использовать эту ссылку для последующего запуска щелчка из ваших обработчиков событий с помощью метода HTMLElement.click .
В вашем render
методе:
<input ref={input => this.inputElement = input} ... />
В вашем обработчике событий:
this.inputElement.click();
Полный пример:
class MyComponent extends React.Component {
render() {
return (
<div onClick={this.handleClick}>
<input ref={input => this.inputElement = input} />
</div>
);
}
handleClick = (e) => {
this.inputElement.click();
}
}
Обратите внимание на стрелочную функцию ES6, которая обеспечивает правильную лексическую область для this
обратного вызова. Также обратите внимание, что объект, который вы получаете таким образом, является объектом, похожим на то, что вы получили бы с помощью document.getElementById
, то есть фактическим DOM-узлом.