如何取消订阅数组
How to unsubscribe from an array of subscription
我想使用来自 Apollo 查询的 subscribeToMore
数组。我受到了这个article的启发,期望我想使用一个功能组件:
useEffect(() => {
const unsubscribe =
[subscribeToMore({
// subscriptionData...
}), subscribeToMore({
// subscriptionData...
})]
if (unsubscribe.length > 0) {
for (i = 0; i < unsubscribe.length; i++) {
return () => unsubscribe[i]()
}
}
}, [subscribeToMore])
但是,我得到:
In unsubscribe[i]
(), unsubscribe[i] is undefined
useEffect
只有一个 return 函数。你不能多次调用它。相反,在 return 函数中,您可以检查条件并取消订阅是否有要清除的订阅
useEffect(() => {
const unsubscribe =
[subscribeToMore({
// subscriptionData...
}), subscribeToMore({
// subscriptionData...
})]
return () => {
if (unsubscribe.length > 0) {
for (i = 0; i < unsubscribe.length; i++) {
unsubscribe[i]()
}
}
}
}, [subscribeToMore])
我想使用来自 Apollo 查询的 subscribeToMore
数组。我受到了这个article的启发,期望我想使用一个功能组件:
useEffect(() => {
const unsubscribe =
[subscribeToMore({
// subscriptionData...
}), subscribeToMore({
// subscriptionData...
})]
if (unsubscribe.length > 0) {
for (i = 0; i < unsubscribe.length; i++) {
return () => unsubscribe[i]()
}
}
}, [subscribeToMore])
但是,我得到:
In unsubscribe
[i]
(), unsubscribe[i] is undefined
useEffect
只有一个 return 函数。你不能多次调用它。相反,在 return 函数中,您可以检查条件并取消订阅是否有要清除的订阅
useEffect(() => {
const unsubscribe =
[subscribeToMore({
// subscriptionData...
}), subscribeToMore({
// subscriptionData...
})]
return () => {
if (unsubscribe.length > 0) {
for (i = 0; i < unsubscribe.length; i++) {
unsubscribe[i]()
}
}
}
}, [subscribeToMore])