Вы можете объявить его как поле класса так же, как state
.
class App extends React.Component {
state = { counter: 0 };
inputRef = React.createRef();
}
Babel преобразует его в нечто вроде кода ниже в предварительных настройках этапа 2.
constructor(props) {
super(props);
this.state = { counter: 0 };
this.inputRef = React.createRef();
}
Вы можете создать ссылку с обратными вызовами ref без использования конструктора. <input ref={(element) => { this.inputRef = element; }} />
это то, что вам нужно.
Да, вы можете. Например:
const MyComponent = () => {
const inputRef = React.createRef();
return (
<input ref={inputRef} />
);
}
Единственное, что вы не можете сделать, это передать атрибут ref
функциональному компоненту:
render() {
// This won't work.
return <MyFunctionalComponent ref={this.inputRef} />
}
Подробнее информация из официальных документов, здесь :
Однако вы можете использовать атрибут
blockquote>ref
внутри компонента функции, если вы обращаетесь к элемент DOM или компонент класса: