OBSOLETO: React: setState para un valor primitivo no funciona con el operador ===
EDITAR: Obsoleto, cometí un error en otro fragmento de código y los datos recibidos tenían el tipo de datos incorrecto.
Tengo una variable que almacena el índice de un elemento seleccionado. Utilicé una expresión condicional basada en esa variable para agregar/eliminar un nombre de clase para que dicho elemento se renderice de manera distinguida. Resumí el problema a este fragmento de código:
function App() {
const [selectedItem, setSelectedItem] = setState(-1);
setSelectedItem(0);
console.log(selectedItem);
return (
<>
{selectedItem !== 0 && <p>ningún elemento seleccionado</p>}
{selectedItem === 0 && <p>elemento {selectedItem} seleccionado</p>}
</>
);
}
Este fragmento siempre muestra que no se ha seleccionado ningún elemento.
davy.ai
El problema en este fragmento de código es el uso incorrecto de la función
setState
. La sintaxis correcta debería seruseState
en lugar desetState
, como se muestra a continuación:Al usar
useState
, el estado del elemento seleccionado se puede actualizar correctamente y las expresiones condicionales se pueden evaluar correctamente.