Как построить неуправляемый компонент с реагирующими крючками? - PullRequest
0 голосов
/ 10 февраля 2020

Как мне перевести этот неконтролируемый компонент в реагировать на хуки (и избежать мульти-рендеринга поля ввода):

class MyForm extends React.Component {
  constructor(props) {
    super(props);
    this.input = React.createRef();
  }

  render() {
    const {onInputChanged} = this.props;
    return (
      <form>
        <input type="text" ref={this.input} onChange={onInputChanged}/>
      </form>
    );
  }
}

Ответы [ 3 ]

0 голосов
/ 10 февраля 2020

Если вы хотите преобразовать свой компонент в функциональный компонент и использовать хуки, вы можете сделать это следующим образом:

import React, { useRef,useEffect } from 'react';

useEffect(() => {

},['the props you write here will trigger the re-render when they change'])
const MyForm = (props) => {
  const input = useRef(null);
  return (
    <form>
      <input type="text" ref={input} onChange={props.onInputChanged} />
    </form>
  );
}

export default MyForm;
0 голосов
/ 10 февраля 2020
import React, { useRef } from 'react';

export const MyForm = (props) => {
  const input = useRef(null);
  return (
    <form>
      <input type="text" ref={input} onChange={props.onInputChanged} />
    </form>
  );
}
0 голосов
/ 10 февраля 2020

Взгляните на useRef крючок: https://reactjs.org/docs/hooks-reference.html#useref

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...