reactjs 仅在满足特定条件时运行一次useEffect

5lhxktic  于 2022-11-04  发布在  React
关注(0)|答案(1)|浏览(207)

我尝试在useEffect挂钩内运行多个函数。我希望函数在isConnected值解析为一个值后运行。它的初始值为null。过一会儿它将解析为true或false。我只考虑isConnected值第一次更改时。该值可以随时间而更改。我编写了以下代码来实现这一点。我想知道这是否是实现我的目标的正确方法,以及是否有任何重构可以简化这一点。

const App = () => {

    const {isConnected} = useNetInfo();

    const wasConnectedRef = useRef(null);

    useEffect(() => {
        if (isConnected !== null && wasConnectedRef.current === null) {
            if (isConnected) {
                functionOne();
                functionTwo();
            }
            wasConnectedRef.current = isConnected;
        }
    }, [isConnected]);

    ...
}
lyfkaqu1

lyfkaqu11#

我将添加另一个useState变量,在获取数据后将其设置为true,并将其作为侦听器添加到useEffect末尾的方括号中

相关问题