我尝试在internet连接状态解析为true后运行useEffect中的几个函数。但在开始时,状态将为null,然后它将解析为true。因此,其余函数将不会被调用。如何解决此冲突?
我只想运行一次函数
const Component = () => {
const {isConnected} = useNetInfo();
useEffect(() => {
runFunctionOne();
runFunctionTwo();
}, []);
const runFunctionOne = () = {
if (!isConnected) return;
// rest
}
const runFunctionTwo = () = {
if (!isConnected) return;
// rest
}
}
3条答案
按热度按时间kjthegm61#
您可以尝试将isConnected作为一个依赖项传递给useEffect。因此,只要isConnected被更改,useEffect挂钩就会重新运行。
zvms9eto2#
如果您希望效果只运行一次,则应注意多个连接触发器。否则,如果您在联机后断开连接,则该效果将在您再次联机时再次触发。
eh57zj3b3#
您可以使用setTimeout来确保已连接:
如果您将尝试多次连接,甚至在经过6秒后也是如此,则需要添加isConnected作为依赖项