Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

276
Visualizações
MUI Autocompletar opciones personalizadas, sin mostrar la opción seleccionada

Estoy usando MUI v5 Autocomplete para mi menú desplegable.

Tengo opciones con title e id cuando se selecciona una opción, quiero almacenar la id en el estado, también quiero actualizar el valor de selección (autocompletar aquí) con la película seleccionada.

El cuadro de texto en la selección no refleja el valor establecido mediante props de value .

isOptionEqualToValue pero ayuda a resaltar el valor cuando el menú desplegable está abierto. Cuando el menú desplegable está cerrado, el nombre de la película seleccionada no se refleja.

https://codesandbox.io/s/combobox-material-demo-forked-osex0?file=/demo.js

 import * as React from "react"; import TextField from "@mui/material/TextField"; import Autocomplete from "@mui/material/Autocomplete"; export default function ComboBox() { const [movie, setMovie] = React.useState(2); return ( <> Movie ID value in the state {movie} <Autocomplete disablePortal id="combo-box-demo" value={movie == null ? "" : movie} options={top100Films} onChange={(e, data) => { if (data && data.id) { setMovie(data.id); } }} getOptionLabel={(option) => option.title || ""} sx={{ width: 300 }} renderInput={(params) => <TextField {...params} label="Movie" />} isOptionEqualToValue={(option, value) => option.id === value} /> </> ); } const top100Films = [ { title: "The Shawshank Redemption", id: 1 }, { title: "The Godfather", id: 2 }, { title: "The Godfather: Part II", id: 3 } ];

Incluso cuando la opción está seleccionada, no se refleja en el cuadro de texto

Incluso cuando la opción está seleccionada, no se refleja en el cuadro de texto

about 4 years ago · Juan Pablo Isaza
1 Respostas
Responde à pergunta

0

La propiedad de value debe ser uno de los objetos en la matriz de options si desea utilizar el modo controlado :

 const getDefaultOption = () => top100Films.find((m) => m.id === 2) ?? null; export default function ComboBox() { const [movie, setMovie] = React.useState(getDefaultOption); return ( <> <Box mb={3}>Movie ID value in the state {movie.id}</Box> <Autocomplete disablePortal id="combo-box-demo" value={movie} options={top100Films} onChange={(e, data) => setMovie(data)} getOptionLabel={(option) => option.title || ""} sx={{ width: 300 }} renderInput={(params) => <TextField {...params} label="Movie" />} /> </> ); }

Demostración de Codesandbox

about 4 years ago · Juan Pablo Isaza Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda