Нужен ли супер (реквизит)?

Я смотрел документацию Facebook React Native и видел super (props) в конструкторе в части Состояние.

В узнал, что мы используем super (props) только в том случае, если мы хотим получить доступ к props в конструкторе.

У меня вопрос, а разве здесь нет необходимости использовать реквизит?

class Blink extends Component {
  constructor(props) {
  super(props);
  this.state = {isShowingText: true};

  // Toggle the state every second
  setInterval(() => {
   this.setState(previousState => {
    return { isShowingText: !previousState.isShowingText };
  });
}, 1000); 

как вы нашли мы используем super (props), только если мы используем props в конструкторе., это означает, что в вашем случае это не требуется :)

Mayank Shukla 11.06.2018 10:04

Да, но я запутался, потому что, хотя в документации они не использовали props в конструкторе, они использовали его в super () :)

Safa Elmalı 11.06.2018 10:08

проверьте это stackoverflow.com/questions/30571875/…

Shubhanu Sharma 11.06.2018 10:08

Я уже упоминал об этом в своем вопросе :))

Safa Elmalı 11.06.2018 10:09

Если вы планируете переопределить конструктор, вызовите super(props) для обеспечения совместимости в будущем. Кто знает, что с ним сделает конструктор базового компонента. Но конструктор должен быть максимально простым. Итак, лучшим подходом было бы переместить инициализацию состояния в инициализатор свойства класса. И setInterval является частью методов жизненного цикла компонентов, которым он принадлежит. Например, вам нужно очистить интервал, когда компонент был отключен (сейчас этого нет)

Yury Tarabanko 11.06.2018 10:29
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Навигация по приложениям React: Исчерпывающее руководство по React Router
Навигация по приложениям React: Исчерпывающее руководство по React Router
React Router стала незаменимой библиотекой для создания одностраничных приложений с навигацией в React. В этой статье блога мы подробно рассмотрим...
Массив зависимостей в React
Массив зависимостей в React
Все о массиве Dependency и его связи с useEffect.
1
5
1 144
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Нет, в этом нет необходимости. У вас может быть компонент класса, в котором есть только рендеринг.

пример:

class EventsContainer extends React.Component {
 render() {
 const futurEvents = getFuturEvents(this.props.events);
 const passedEvents = getPassedEvents(this.props.events);

 return this.props.loggedIn
 ? <div>
     <NavbarContainer />
     <Events
       futurEvents = {futurEvents}
       passedEvents = {passedEvents}
       deleteEventInStateAndDB = {this.props.deleteEventInStateAndDB}
     />
   </div>
 : <Redirect push to='/'/>
 }
}

Спасибо за пример!

Safa Elmalı 11.06.2018 10:19

Другие вопросы по теме