Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

76
Vistas
Trabajar con múltiples casillas de verificación en reaccionar con un OnChange que no funciona

En mi proyecto, tengo muchas casillas de verificación en las que estoy trabajando y el objetivo es usar una onChange para realizar un seguimiento de la casilla marcada y almacenar sus valores dentro de una matriz y eliminarla cuando se desmarca. Pero lo que he hecho es devolver un error. ¿Puede alguien por favor decirme con lo que estoy haciendo mal. codeandboxenlace

el error que estoy recibiendo

 TypeError selected.indexOf is not a function OnChange /src/App.js:11:24 8 | 9 | const OnChange = (id)=>{ 10 | let selected = isselected; > 11 | let find = selected.indexOf(id) | ^ 12 | 13 | if(find > -1){ 14 | selected.splice(find, 1)

Aquí está mi código App.js

 import React from "react"; import "./styles.css"; import {useState} from 'react' export default function App() { const [isselected, setisselected] = useState([]) const OnChange = (id)=>{ let selected = isselected; let find = selected.indexOf(id) if(find > -1){ selected.splice(find, 1) }else { selected.push(id) } setisselected({selected}) console.log(isselected) } return ( <div className="App"> <div className="first-search"> <input type="checkbox" className="input-1" value="Last 7 days" name="last seven" id= "1" onChange={ (e)=> OnChange(e.target.value)} selected={ (e)=> isselected.includes(e.target.value)} /> <label htmlFor=""> Last 7 days </label> </div> <div className="first-search"> <input type="checkbox" className="input-1" name="last24" value="last24" id= "2" onChange={ (e)=> OnChange(e.target.value)} selected={ (e)=> isselected.includes(e.target.value)} /> <label htmlFor=""> Last 24 hours </label> </div> </div> ); }
about 4 years ago · Juan Pablo Isaza
1 Respuestas
Responde la pregunta

0

setisselected({selected}) si esto intenta restablecer isselected, ¡ se ha declarado y es constante!

nota: name="lost seven" y name="last24" value="last24" no se ven bien como convención de codificación personal.

*Sería bueno que publicaras el error desde un mensaje de depuración del navegador. por ejemplo, firefox o cromo.

about 4 years ago · Juan Pablo Isaza Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda