Red de conocimiento informático - Problemas con los teléfonos móviles - Reaccionar gancho----Cómo hacer que useEffect no se ejecute al renderizar, solo se ejecuta cuando los datos cambian

Reaccionar gancho----Cómo hacer que useEffect no se ejecute al renderizar, solo se ejecuta cuando los datos cambian

Antes de comprender esto, primero puede comprender el principio y el mecanismo de ejecución de useEffect https://zh-hans.reactjs.org/docs/hooks-effect. html

El requisito es: después de que el usuario hace clic en el botón de búsqueda para consultar, se muestra esta tabla. Cuando el tamaño de la página de la tabla o la página actual cambia, los datos deben volver a consultarse. /p>

Pero esto no es un evento de montaje y, una vez que se activa el evento, no se ejecutará a menos que el usuario haga clic en él. Por lo tanto, cuando se usa useEffect, es necesario prohibir la ejecución cuando la página está. renderizado inicialmente

He intentado devolver el método de ejecución a ejecución y quiero usar useEffect. El mecanismo de limpieza falla

La razón es que useEffect genera y retiene una instantánea (equivalente a Renderizar) cada vez que se ejecuta, por lo que cuando el estado cambia a Renderizar, la razón es que useEffect genera y retiene instantáneas cada vez que se ejecuta. Se genera y retiene una instantánea (equivalente a renderizar) durante la ejecución. entonces, cuando el estado cambia y la representación cambia, se crearán N estados de representación, y cada estado de representación tiene sus propios accesorios y estados fijos.

Al utilizar un mecanismo de limpieza, siempre irá al valor guardado en la instantánea anterior (el usuario pasa a la tercera página, pero obtiene los mismos datos que cuando el usuario pasó a la segunda página).

Se adjunta una copia del mecanismo de limpieza de useEffect.mechanism, simplemente lea los comentarios y haga clic → (https://zh-hans.reactjs.org/docs/hooks-effect.html#explanation- Why-effects -run-on-each-update)

Como no encontré un buen método, solo puedo

establecer el valor inicial de isInit en verdadero, isInit cuando La página que se representa primero se asignará como falsa y luego, cada vez que juzguemos el valor de isInit, estará bien.

Hasta ahora, esta es una buena solución, si hay una solución mejor, déjala. ya lo sé, te lo agradeceré