Создать Ref с помощью React.createRef без использования конструктора в React?

4
задан deadcoder0904 18 January 2019 в 16:18
поделиться

3 ответа

Вы можете объявить его как поле класса так же, как 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();
  }
0
ответ дан Ana Liza Pandac 18 January 2019 в 16:18
поделиться

Вы можете создать ссылку с обратными вызовами ref без использования конструктора. <input ref={(element) => { this.inputRef = element; }} /> это то, что вам нужно.

0
ответ дан Avanthika 18 January 2019 в 16:18
поделиться

Да, вы можете. Например:

const MyComponent = () => {
  const inputRef = React.createRef();

  return (
    <input ref={inputRef} />
  );
}

Единственное, что вы не можете сделать, это передать атрибут ref функциональному компоненту:

render() {
  // This won't work.
  return <MyFunctionalComponent ref={this.inputRef} />
}

Подробнее информация из официальных документов, здесь :

Однако вы можете использовать атрибут ref внутри компонента функции, если вы обращаетесь к элемент DOM или компонент класса:

0
ответ дан Chris 18 January 2019 в 16:18
поделиться
Другие вопросы по тегам:

Похожие вопросы: