Я смотрел документацию 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);
Да, но я запутался, потому что, хотя в документации они не использовали props в конструкторе, они использовали его в super () :)
проверьте это stackoverflow.com/questions/30571875/…
Я уже упоминал об этом в своем вопросе :))
Если вы планируете переопределить конструктор, вызовите super(props) для обеспечения совместимости в будущем. Кто знает, что с ним сделает конструктор базового компонента. Но конструктор должен быть максимально простым. Итак, лучшим подходом было бы переместить инициализацию состояния в инициализатор свойства класса. И setInterval является частью методов жизненного цикла компонентов, которым он принадлежит. Например, вам нужно очистить интервал, когда компонент был отключен (сейчас этого нет)





Нет, в этом нет необходимости. У вас может быть компонент класса, в котором есть только рендеринг.
пример:
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='/'/>
}
}
Спасибо за пример!
как вы нашли мы используем super (props), только если мы используем props в конструкторе., это означает, что в вашем случае это не требуется :)