Aquí está el código para inicializar categoryArray
. Quiero ejecutar el useEffect
solo si los categoryArray
datos cambian.
const [categoryArray, setCategoryArray] = useState([]);
useEffect(() => {
axios.get('http://localhost:8080/user/category')
.then(response => {
if (categoryArray!== response.data.category) {
setCategoryArray(response.data.category);
}
})
.catch(err => {
console.log(err);
})
}, [categoryArray])
Traté de aplicar una declaración condicional setCategoryArray
solo si hay algún cambio, pero de alguna manera esa declaración condicional no funciona correctamente y está ocurriendo un bucle infinito.
¿Podría por favor guiarme sobre dónde me estoy equivocando? También hágame saber si se requiere más información.
Solución del problema
El último parámetro de una useEffect
marca sobre qué valor cambia useEffect
debe activarse nuevamente.
Dado que está configurando categoryArray
con el valor de la axios
llamada, pero también configuró useEffect
para que se active cuando esa variable cambie, se activará una y otra vez.
Probablemente pueda eliminarlo [categoryArray]
para useEffect
que solo se active una vez en el renderizado inicial.
No hay comentarios.:
Publicar un comentario