Ребята, подскажите как происходит механизм подписки в Реакт, не совсем понятно, в 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 ? 'В сети' : 'Не в сети';
}
}
Я так понимаю, что этот код был взят из объяснения команды Facebook работы хуков.
В данном примере ребята хотели показать 2 примера реализации одного и того же функционала(в данном случае некое абстрактная реализация API): в классическом примере(с помощью componentDidMount и componentDidUnmount) и новом(с помощью useEffect).
Функции ChatAPI.subscribeToFriendStatus и ChatAPI.unsubscribeFromFriendStatus - используются для того, чтобы объяснить принцип работы нововведений(таких как useEffect, например), поэтому в самом реакте такого функционала нет.
Что касается твоего второго вопроса: 2 аргументом попадает функция.
Сборка персонального компьютера от Artline: умный выбор для современных пользователей