React - как получить доступ к реквизитам без использования constuctor


Примечание: я сталкиваюсь с этой конкретной проблемой, используя React Native,но я думаю, что это относится и к React вообще.

У меня есть компонент react, построенный с помощью React.Деталь. Мне не нужно устанавливать штат, но у меня есть реквизит. Я предложил следующий синтаксис:

class Header extends Component {
  constructor(props) {
    super(props);
  }
  render() {
    return <div>{this.props.title}</div>;
  }
}

Я понимаю, что могу использовать функцию для построения этого компонента, например:

const Header = (props) => {
  return <div>{props.title}</div>;
}

Но я предпочитаю первое, потому что мой компонент будет расти, может иметь состояние и т. д., И я просто хочу сохранить все свои компоненты построены аналогичным образом.

Теперь мой Линтер жалуется на бесполезный конструктор, но как еще я могу получить доступ к реквизитам, сохраняя конструктор класса вместо конструктора функции?

2 5

2 ответа:

Если вы хотите использовать это.реквизит в конструкторе, вам нужно передать реквизит супер. В противном случае, это не имеет значения, потому что реагируют наборы.реквизит на экземпляр извне сразу после вызова конструктора.

Поэтому просто удалите конструктор (), если он бесполезен

Вы можете получить доступ к реквизитам без конструктора в классе, используя "это", например:

class XXXXXX extends React.Component {
   render() {
       return (
          <div>{this.props.value}</div>
       )
   }
}