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

364
Visualizações
¿Cómo cambiar el color de fondo del menú MUI Popover de TextField con la propiedad de selección?

Quiero lograr que la ventana emergente, respectivamente, el menú de un TextField con la propiedad 'seleccionar' cambie el color de fondo. Seguí las instrucciones de los documentos de personalización de MUI . Tuve éxito al cambiar, es decir, el color del texto y la etiqueta de un TextField con el siguiente código.

 const useStyles = makeStyles({ root: { color: "azure", '& .MuiInputLabel-root': { color: "#adadad",} } })
 const TextFieldBar = (props) => { const classes = useStyles(); return ( <Stack className={classes.root} > <TextField select > <MenuItem> Option 1 </MenuItem> <MenuItem> Option 2 </MenuItem> <MenuItem> Option 3 </MenuItem> </TextField> </Stack> ) }

Pero me quedo atascado cuando trato de cambiar algo de la ventana emergente cuando hace clic en un componente Select . Debo mencionar que no es exactamente un componente Seleccionar ya que estoy usando un TextField con la propiedad 'seleccionar'. Entonces mi pregunta es, qué clase debo usar para cambiar el fondo. Inspeccioné el elemento html y probé todas las clases aplicadas como en el siguiente fragmento, pero sin éxito.

 const useStyles = makeStyles({ root: { '& .MuiPaper-root': {background: 'black'}; //doesn't work '& .MuiPaper-rounded': {background: 'black'}; //doesn't work '& .MuiPaper-elevation': {background: 'black'}; //doesn't work . . . } })

Creo que todavía no entendía el sistema detrás de la personalización de los componentes de MUI. Es solo una suposición, pero tal vez no pueda acceder al elemento html ya que el popover/menú no es un elemento secundario del componente Stack o TextField en el que aplico mis estilos personalizados.

Estoy usando

  • reaccionar 17.0.2
  • mui-core 5.0.0-alpha.47
  • @mui/material 5.0.3
  • @mui/estilos 5.0.1

Gracias por adelantado.

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

0

El Paper no está dentro de Select en el árbol DOM, de forma predeterminada usa el portal para mostrar la lista del menú, por eso, no puede apuntar al nombre de clase descendente a menos que use MenuProps.disablePortal . Para superar eso, MUI proporciona MenuProps para que pueda pasar los accesorios al Paper incluido el className :

 <TextField select label="Select" SelectProps={{ MenuProps: { PaperProps: { className: classes.paper } } }}

Ya que está usando v5 , también puede usar sx prop . Tenga en cuenta que el equipo de MUI no recomienda usar makeStyles porque está obsoleto y puede eliminarse en futuras versiones:

 <TextField select label="Select" SelectProps={{ MenuProps: { PaperProps: { sx: { backgroundColor: "pink", color: "red" } } } }}

Demostración de Codesandbox

about 4 years ago · Juan Pablo Isaza Relatório

0

Use classes o emotion styled en lugar de makeStyles

Menú Documentos MenuItem Documentos

Clases:

 <MenuItem classes={{...}} > ... </MenuItem>
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