代码之家  ›  专栏  ›  技术社区  ›  Bomber

React Native,向useffect hook添加两个return语句

  •  1
  • Bomber  · 技术社区  · 3 年前

    如何在我的返回语句中添加两个返回语句 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) => ({
            ...
        }));
    };
    
    1 回复  |  直到 3 年前
        1
  •  0
  •   Youssouf Oumar    3 年前

    你可以简单地把它们从上到下放到 useEffect 祝你生日快乐 return 函数(它立即执行所需的两个返回语句的代码):

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