Hola, quiero hacer algo cuando cambie mi cuadro de selección, tengo algo como esto:
function Task(){ const prints = (e) =>{ console.log("it prints"); } const prints2 = (e) =>{ console.log("it prints2"); } return ( <select onChange={prints} onClick={prints2} name="subject"> {subjectsContext.subjects.map((aSubject)=>( <option value={aSubject.idsubject}> {aSubject.subjectname} </option> ) )} </select> ) }temas es una lista que tengo, cuando pongo onClick en lugar de onChange funciona bien, pero cuando pongo onChange no funciona cuando selecciono una opción, simplemente no activa la función de impresión, ¿por qué?
Debe pasar el evento (e) a la función como parámetro, intente esto:
function Task() { const prints = (e) => { console.log(e.target.value); console.log('it prints'); }; const prints2 = (e) => { console.log(e.target.value); console.log('it prints2'); }; return ( <select onChange={(e) => prints(e)} onClick={(e) => prints2(e)} name='subject' > {subjectsContext.subjects.map((aSubject) => ( <option value={aSubject.idsubject}>{aSubject.subjectname}</option> ))} </select> ); } Además, considere agregar un atributo key a su opción mientras lo mapea y crea elementos duplicados en el DOM, supongo que esta es una aplicación de reacción, por lo que podría causar errores.
Editar: ... Y no necesita el onClick aquí, ni siquiera obtendrá un evento, así que simplemente elimínelo.