React Native,在useEffect钩子中添加两个return语句



如何将两个返回语句添加到useEffect挂钩?我想在我当前的钩子中添加一个事件侦听器。

事件侦听器:

const subscription = AppState.addEventListener("change", nextAppState => {
if (
appState.current.match(/inactive|background/) &&
nextAppState === "active"
) {
console.log("App has come to the foreground!");
}
appState.current = nextAppState;
setAppStateVisible(appState.current);
console.log("AppState", appState.current);
});
return () => {
subscription.remove();
};

当前挂钩:

useEffect(() => {
async function checkRefresh() {
if (
daysDiffToNow(lastUpdatedTimestamp) > 0 &&
appState.current.match(/inactive|background/) &&
nextAppState === "active"
) {
await onRefreshAppData();
}
}
checkRefresh();
const updateLastUpdatedTextCallback = (value) => {
setState((prevState) => ({
...
}));
};
const id = setInterval(() => {
updateLastUpdatedTextCallback(lastUpdatedTimestamp);
}, TIME_INTERVAL_IN_MILISECONDS);
return () => clearInterval(id);
}, [lastUpdatedTimestamp]);
const close = () => {
setState((prevState) => ({
...
}));
};

您可以简单地将它们从上到下放在useEffect中,并有一个return函数,如下所示(它同时执行所需的两个返回语句的代码(:

return () => {
subscription.remove(); // the first
clearInterval(id); // the second
};

最新更新