Как преобразовать компонент constactjs в класс на основе

Я пытаюсь выяснить, как конвертировать этот код

const Child = ({ match }) => (
  <div>
    <h3>ID: {match.params.id}</h3>
  </div>
)

В компонент на основе классов, как это

class Home extends React.Component {

  render() {
      ....
  }
}

Нормальные компоненты const Я знаю, как конвертировать, но я не могу понять, как включить match параметр в компоненте на основе класса.

2 ответа

Решение

В вашем определении функционального компонента

const Child = ({ match }) => (
  <div>
    <h3>ID: {match.params.id}</h3>
  </div>
)

Аргумент - это реквизиты, передаваемые дочернему компоненту, однако при использовании {match} вы удаляете только опору из всех опор, переданных вниз.

Посмотрите этот ответ: что такое дочерний реквизит в компоненте React и что делает PropTypes

Поэтому при преобразовании вашего функционального компонента в компонент класса вы можете destructure опора match в render функционировать как

class Child extends React.Component {

  render() {
      var {match} = this.props;
      return (
         <div>
             <h3>ID: {match.params.id}</h3>
           </div>
      )
  }
}

функция:

const Child = ({ match }) => (
  <div>
    <h3>ID: {match.params.id}</h3>
  </div>
)

Учебный класс:

import React, { Component } from 'react';

class Child extends Component {
  render(){
    const {match} = this.props;
    return (
      <div>
         <h3>ID: {match.params.id}</h3>
       </div>
    );
  }
}
export default Child;
Другие вопросы по тегам