在这里react-hooks菜鸟......
鉴于这个例子
useEffect(() => {
function handleStatusChange(status) {
setIsOnline(status.isOnline);
}
ChatAPI.subscribeToFriendStatus(props.friend.id, handleStatusChange);
// Specify how to clean up after this effect:
return function cleanup() {
ChatAPI.unsubscribeFromFriendStatus(props.friend.id, handleStatusChange);
};
});
从文档
当组件卸载时,React 执行清理。但是,正如我们之前所了解的,效果会在每次渲染时运行,而不仅仅是一次。这就是为什么 React 还会在下次运行效果之前清除上一次渲染中的效果。
这是否意味着unsubscribeFromFriendStatus
仅在组件卸载或每次渲染时运行一次?
扩展我的问题:
ifunsubscribeFromFriendStatus
每次都运行,而跳过它的唯一方法是使用可选的第二个参数......那么它是否会更难实现componentWillMount
and的原始显式执行componentWillUnmount
?说,我想subscribe
什么时候componentWillMount
,只unsubscribe
在componentWillUnMount
什么时候运行?