Преобразовать компонент класса в функциональный компонент

#node.js #json #reactjs #react-redux #react-hooks

#node.js #json #reactjs #реагировать-redux #реагирующие крючки

Вопрос:

Я хочу преобразовать этот компонент класса в функциональный компонент. Я много пробовал и потерпел неудачу. Есть ли решение проблемы?

 componentDidMount(){
    const id = this.props.match.params.id;
    getById( parseInt(id) )
    .then(product => {
    this.setState({
      product,
      loading: false
    });
  })
}
  

Комментарии:

1. Возможно, вы можете добавить еще несколько деталей к своему вопросу и с какими проблемами вы боретесь

Ответ №1:

Следующий фрагмент равен componentDidMount в компоненте класса:

 // ...
const [loading, setLoading] = React.useState(false);
const [product, setProduct] = React.useState(void 0);

React.useEffect(() => {
  // Did mount, put your code here
  setLoading(true)
 
  // Fetch done
  .then(product => {
    setLoading(false)
    setProduct(product)
  })

}, []);
  

Комментарии:

1. Как мне изменить это, чтобы оно работало со мной: const id = this.props.match.params.id ; GetById( parseInt(id) ) .затем(product => { this.setState({ product, загрузка: false }); })

2. Я подбросил вам черновую идею

3. Как мне это изменить. Реквизит

4. props является аргументом вашего функционального компонента: const YourComponent = (props) => { //... }