El hook useState no está volviendo a renderizar.
Tengo un useEffect hook bastante simple:
const [tagsWithData, setTagsWithData] = useState([]);
useEffect(() => {
....
const finalsTags = temp.map((item) => item.name);
setTagsWithData(finalsTags);
}, []);
Dentro de return, tengo una condición para renderizar la etiqueta input:
{tagsWithData.length !== 0 ? (
<tagsinput selectedtags="{selectedTags}" tags="{tagsWithData}"></tagsinput>
) : (
<tagsinput selectedtags="{selectedTags}" tags="{tags}"></tagsinput>
)}
El código anterior siempre permanece en 0 y no pasa a la condición else.
¿Qué estoy haciendo mal aquí?
Gracias.
davy.ai
Podría haber varias razones por las que el código no se mueve a la condición ‘else’:
tagsWithData
no es un arreglo vacío. Si ya tiene algunos valores, entonces el gancho useEffect no se ejecutará ytagsWithData
no se actualizará.temp
de una manera que resulte en nuevos valores siendo mapeados afinalsTags
. Asegúrese de que lo que esté sucediendo dentro del gancho está cambiando los valores. Podría intentar registrarse en la consolafinalsTags
para ver si realmente está cambiando.selectedTags
es indefinido o no se está pasando correctamente aTagsInput
. Verifique que esté definido y que se esté pasando como se espera.Para depurar aún más el problema, podría:
temp
antes y después del mapeo para ver si realmente está cambiando.selectedTags
para asegurarse de que esté definido y no cause ningún comportamiento inesperado.tagsWithData
para asegurarse de que se esté actualizando correctamente.