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

243
Vistas
Cómo mostrar la opción elegida | Autocompletar interfaz de usuario de material

Estoy obteniendo datos de una API como opciones en Material UI Autocompletar, las opciones se obtuvieron correctamente, pero el problema es que cuando elijo una opción y la envío de vuelta a la API (POST), la opción (categoría) no se muestra como texto que muestra como un número (0) como se muestra en la imagen de abajo (Mongodb) ingrese la descripción de la imagen aquí

 import Autocomplete from '@mui/material/Autocomplete'; import TextField from '@mui/material/TextField'; export default function Write() { const [categories, setCategories] = useState(""); const handlerSubmit = async (e) => { e.preventDefault(); const newPost = { username: user.username, title, categories, } if (file) { try { } catch (err) { } } try { const res = await axios.post("/posts", newPost); } catch (err) { } } useEffect(() => { const getCats = async () => { const res = await axios.get("/categories"); setCategories(res.data); }; getCats(); }, []); return ( <div className='write'> <form className="writeForm" onSubmit={handlerSubmit}> <input className="writeTitleInput" required type="text" placeholder="title" autoFocus={true} onChange={e => setTitle(e.target.value)}> </input> <Autocomplete multiple limitTags={3} id="tags-standard" options={categories} getOptionLabel={option => (option.name ? option.name : "")} onChange={(e) => setCategories(e.target.value)} renderInput={(params) => ( <TextField {...params} variant="standard" label="Multiple values" placeholder="Choose a Category" /> )} /> <button className="writeSubmitButton" type="submit">Publish</button> </form> </div> ) }

La pregunta es cómo mostrar la opción elegida como una cadena, no como una matriz.

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

0

Según los documentos , la firma de onChange para Autocomplete es

 function( event: React.SyntheticEvent, value: T | Array<T>, reason: string, details?: string) => void

Está esperando que el valor esté en event , cuando en realidad está en value . Modifique su devolución de llamada onChange a algo como lo siguiente:

 onChange={(_, value) => setCategories(value)}

Es posible que el value no tenga la forma que espera su API, por lo que debe intentar usar console.log en la devolución de llamada para determinar su forma y luego modificar lo anterior de manera adecuada.

el value es Array<T> cuando se establece multiple , por lo que probablemente también debería tener su valor predeterminado para las categories establecidas en el mismo tipo, es decir, una matriz vacía ( [] ) en lugar de una cadena vacía ( "" ).

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