Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Reactjs 如何:取消阿波罗(subscribeToMore)订阅?_Reactjs_Apollo_React Apollo_Apollo Client - Fatal编程技术网

Reactjs 如何:取消阿波罗(subscribeToMore)订阅?

Reactjs 如何:取消阿波罗(subscribeToMore)订阅?,reactjs,apollo,react-apollo,apollo-client,Reactjs,Apollo,React Apollo,Apollo Client,因此,我有一个订阅,如下所示,我希望取消订阅: 下标托莫尔({ .... } }) } >删除此项,因此我通过调用abortController实现了清理: useffect(()=>{ const abortController=新的abortController(); props.subscribeToDeleteItems(); return()=>{ abortController.abort(); }; },[urlReferer])所以我通过调用abortController实

因此,我有一个订阅,如下所示,我希望取消订阅:


下标托莫尔({
....
}
})
}

>删除此项
,因此我通过调用abortController实现了清理:

useffect(()=>{
const abortController=新的abortController();
props.subscribeToDeleteItems();
return()=>{
abortController.abort();
};

},[urlReferer])所以我通过调用abortController实现了清理:

useffect(()=>{
const abortController=新的abortController();
props.subscribeToDeleteItems();
return()=>{
abortController.abort();
};

},[urlReferer])如果效果返回函数,React将在清理时运行它。SubscribeToMore返回unsubscribe函数

const subscribeToNewComments = () =>
    subscribeToMore({
      document: MESSAGES_SUBSCRIPTION,
      variables: { channelId },
      updateQuery: (prev, { subscriptionData }) => {
        if (!subscriptionData) return prev;
        return Object.assign({}, prev, {
          channelMessages: [
            subscriptionData.data.messageAdded,
            ...prev.channelMessages,
          ],
        });
      },
    });   

React.useEffect(() => {
        let unsub = subscribeToNewComments();
        return () => {
          unsub();
        };
      }, [channelId]);

如果效果返回一个函数,React将在清理时运行它。SubscribeToMore返回unsubscribe函数

const subscribeToNewComments = () =>
    subscribeToMore({
      document: MESSAGES_SUBSCRIPTION,
      variables: { channelId },
      updateQuery: (prev, { subscriptionData }) => {
        if (!subscriptionData) return prev;
        return Object.assign({}, prev, {
          channelMessages: [
            subscriptionData.data.messageAdded,
            ...prev.channelMessages,
          ],
        });
      },
    });   

React.useEffect(() => {
        let unsub = subscribeToNewComments();
        return () => {
          unsub();
        };
      }, [channelId]);