Cómo puedo omitir la primera ejecución en useEffect hook.
useEffect(() => { const first = // ??? if (first) { // skip } else { // run main code } }, [id]);El useRef se puede usar para almacenar cualquier valor mutable , por lo que podría almacenar un valor booleano que indique si es la primera vez que se ejecuta el efecto.
Ejemplo
const { useState, useRef, useEffect } = React; function MyComponent() { const [count, setCount] = useState(0); const isFirstRun = useRef(true); useEffect (() => { if (isFirstRun.current) { isFirstRun.current = false; return; } console.log("Effect was run"); }); return ( <div> <p>Clicked {count} times</p> <button onClick={() => { setCount(count + 1); }} > Click Me </button> </div> ); } ReactDOM.render( <MyComponent/>, document.getElementById("app") ); <script src="https://unpkg.com/react@16.7.0-alpha.0/umd/react.development.js"></script> <script src="https://unpkg.com/react-dom@16.7.0-alpha.0/umd/react-dom.development.js"></script> <div id="app"></div>