gpt4 book ai didi

react-native - 在 react-native 中离开屏幕时,我应该如何断开与 signalR 的连接

转载 作者:行者123 更新时间:2023-12-05 03:35:48 26 4
gpt4 key购买 nike

在我的应用程序中,我有几个屏幕使用类似的 signalR。该函数称为 useEffect 函数,它有效:

const setupSignalR = () =>
{
SecureStore.getItemAsync("token").then(tk => {
let connection = new HubConnectionBuilder()
.withUrl("URL", {
accessTokenFactory: () => tk
})
.build();

connection.on("Update", function (message) {
//DOSTUFF
});

connection.start()
.then(() => console.log("connection started"))
.catch(err => console.log("connecting hub failed err is : ", err));
});
}

问题是,如果我离开屏幕,连接会保持打开状态,当我返回屏幕时,我会打开另一个连接,这意味着我现在同时打开了 2 个连接。我知道 signalR 有一个我可以调用的停止函数,所以我尝试像那样使用导航监听器,但它们没有被调用:

useEffect(() => 
{
Load();
setupSignalR();
const unsubscribe = navigation.addListener('focus', () => {

});
const sub = navigation.addListener('blur', () => {
console.log("============");
});
}, [navigation]);

我通常通过按后退按钮或使用 navigation.navigate();

离开屏幕

最佳答案

return () => {
connection.stop();
}

有效。

关于react-native - 在 react-native 中离开屏幕时,我应该如何断开与 signalR 的连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69779716/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com