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

241
Vistas
método de llamada onChange en el atributo seleccionado

Tengo que call a un método cuando el usuario cambia la lista dropdown , se debe llamar al método handleChange() .

y debería imprimir ambos values . tenemos 2 country de atributo, así como activerequests

 import React from 'react' import { useFormik } from 'formik'; import * as Yup from 'yup'; function YourActionNew() { const initialValues={ country: '', activerequests:'' } const onSubmit=(values:any)=>{ console.log('Form Data',values); } const handleChange = async ( event: any) => { alert("Visited field "+JSON.stringify(event.target.values)); }; const validationSchema = Yup.object({ country:Yup.string().required('Required'), activerequests:Yup.string().required('Required') }) const formik = useFormik({ initialValues, onSubmit, validationSchema }); console.log("Visited field "+JSON.stringify(formik.values)); return ( <div> <form > <div className='form-control'> <label htmlFor='country'>Country</label> <input type='text' id='country' name='country' onChange={formik.handleChange} onBlur={formik.handleBlur} value={formik.values.country}/> {formik.touched.country && formik.errors.country? <div className='error'>{formik.errors.country}</div>:null} </div> <div className="form-control"> <label htmlFor="activerequests">Active Requests</label> <select name="activerequests" onChange= {formik.handleChange} onBlur={formik.handleBlur} value={formik.values.activerequests}> <option value="All" onChange={formik.handleChange}>All </option> <option value="YES" onChange={formik.handleChange}>Yes </option> <option value="NO" onChange={formik.handleChange}>No</option> </select> </div> <button type="submit">Submit</button> </form> </div> ) } export default YourActionNew

ingrese la descripción de la imagen aquí

cuando en la etiqueta de select escribo onChange= {(e)=>{handleChange(e)}} en lugar de onChange={formik.handleChange} y luego se llama al método pero se imprime undefined .

cuál es mi requisito cuando el usuario cambió los valores en la lista dropdown , debe imprimir ambos valores. Tengo que pasar ambos valores en API .

about 4 years ago · Juan Pablo Isaza
2 Respuestas
Responde la pregunta

0

Supongo que desea realizar una llamada API cuando el usuario envía el formulario. Para hacerlo, debe vincular la función onSubmit que ha definido al formulario:

 <form onSubmit={formik.handleSubmit}>

Editar para abordar el comentario de OP:

Puede crear otra función que se vincule al atributo onChange del elemento <select> . Dentro de él, puede llamar a formik.handleChange para actualizar formik.values y luego hacer cualquier otra cosa:

 const onDropdownValueChange = (e) => { formik.handleChange(e); // make API call }; ... <select name="activerequests" onChange={onDropdownValueChange} ... />
about 4 years ago · Juan Pablo Isaza Denunciar

0

Creo que hay un error al imprimir el valor en la función handleChange

debería ser

 alert("Visited field "+JSON.stringify(event.target.value));

eliminar s del valor

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