Subscription in react hooks

139
19 августа 2021, 06:00

Ребята, подскажите как происходит механизм подписки в Реакт, не совсем понятно, в subscribeToFriendsStatus вторым аргументом попадает результат выполнения функции handleStatusChange или как?

class FriendStatus extends React.Component {
constructor(props) {
super(props);
this.state = { isOnline: null };
this.handleStatusChange = this.handleStatusChange.bind(this);
}
componentDidMount() {
ChatAPI.subscribeToFriendStatus(
  this.props.friend.id,
  this.handleStatusChange
);
}
componentWillUnmount() {
ChatAPI.unsubscribeFromFriendStatus(
  this.props.friend.id,
  this.handleStatusChange
);
}
 handleStatusChange(status) {
this.setState({
  isOnline: status.isOnline
});
}
render() {
 if (this.state.isOnline === null) {
  return 'Загрузка...';
 }
 return this.state.isOnline ? 'В сети' : 'Не в сети';
  }
}
Answer 1

Я так понимаю, что этот код был взят из объяснения команды Facebook работы хуков.

В данном примере ребята хотели показать 2 примера реализации одного и того же функционала(в данном случае некое абстрактная реализация API): в классическом примере(с помощью componentDidMount и componentDidUnmount) и новом(с помощью useEffect).

Функции ChatAPI.subscribeToFriendStatus и ChatAPI.unsubscribeFromFriendStatus - используются для того, чтобы объяснить принцип работы нововведений(таких как useEffect, например), поэтому в самом реакте такого функционала нет.

Что касается твоего второго вопроса: 2 аргументом попадает функция.

READ ALSO
API запрос Axios

API запрос Axios

Я написал вот такой API POST запрос на PHP и все прекрасно работает, но вопрос в том, что мне нужен этот запрос на Axios так как я к нему привяжу VueJS

274
Можно ли сделать свой картинку частицами через particles.js?

Можно ли сделать свой картинку частицами через particles.js?

Можно ли через библиотеку particlesjs сгенерировать узор по схеме?

151
Передача параметра из Vue

Передача параметра из Vue

Не моу передать значения из фреймворка Vue в MVC или HTML атрибуту href, (он воспринимает это как название comIDUser и не как иначе) есть ссылка

146