如何将焦点设置在 Material UI TextField 组件上?
componentDidMount() { ReactDom.findDomNode(this.refs.myControl).focus() }
我已经尝试了上述代码,但是它不起作用。
要将焦点设置在 Material UITextField组件ref回调上,则ReactDOM.findDOMNode不是
TextField
ref
ReactDOM.findDOMNode
你可以使用以下方法正确设置焦点refs:
refs
componentDidMount
以下是一个操作示例:
import React, { Component } from 'react'; import ReactDOM from 'react-dom'; import TextField from '@material-ui/core/TextField'; class MyComponent extends Component { constructor(props) { super(props); this.textFieldRef = React.createRef(); } componentDidMount() { // Access the input element directly using the ref if (this.textFieldRef.current) { this.textFieldRef.current.focus(); } } render() { return ( <TextField label="My Control" inputRef={this.textFieldRef} // Attach the ref to the TextField /> ); } } export default MyComponent;
React.createRef()
inputRef
focus
通过使用inputRefMaterial UI 提供的 prop,您可以直接访问 的底层 DOM 元素并对其TextField进行调用focus()。此方法避免了 的陷阱findDOMNode并遵循了 React 处理 ref 的最佳实践。
focus()
findDOMNode