Agregar un className en SelectDisplayProps
realidad anula sus classNames existentes
tengo un componente. Cuando quiero dar un className al div que muestra el valor seleccionado de Select, en lugar de agregar el className a los demás como cada componente de material ui, los anula.
Tengo un componente <Select />
, cuando agrego un className
en SelectDisplayProps
, anula los classNames existentes del componente que muestran el valor seleccionado en el .
No debe anular los classNames existentes, sino agregarlos.
Aquí puede encontrar una caja de arena para ver el error: https://codesandbox.io/s/material-ui-issue-forked-oi0vd
Pasos:
SelectDisplayProps
:SelectDisplayProps={{
className: classes.selectDisplay
}}
SelectDisplayProps
a indefinido, como si no hubiera especificado uno.SelectDisplayProps
, existe la clase predeterminada de IU de material. Pero cuando se especifica SelectDisplayProps
, el className desapareceQuiero anular el estilo del elemento que muestra el valor de selección. El problema existe incluso si cambio totalmente el estilo que estoy tratando de dar, así que no creo que esté relacionado.
| Tech | Versión |
| ----------- | ------- |
| Material-UI | v4.11.0 |
| Reaccionar | 16.13.1 |
| Navegador | Chrome: versión 86.0.4240.75 (compilación oficial) (64 bits) |
| TypeScript | 3.9.5 |
@Newpoki Gracias por el informe, puedo confirmar el problema. ¿Qué opinas de esta solución?
diff --git a/packages/material-ui/src/Select/SelectInput.js b/packages/material-ui/src/Select/SelectInput.js
index eb58ecd1b3..2098d0f3b8 100644
--- a/packages/material-ui/src/Select/SelectInput.js
+++ b/packages/material-ui/src/Select/SelectInput.js
@@ -353,16 +353,6 @@ const SelectInput = React.forwardRef(function SelectInput(props, ref) {
return (
<React.Fragment>
<div
- className={clsx(
- classes.root, // TODO v5: merge root and select
- classes.select,
- classes.selectMenu,
- classes[variant],
- {
- [classes.disabled]: disabled,
- },
- className,
- )}
ref={setDisplayNode}
tabIndex={tabIndex}
role="button"
@@ -376,6 +366,17 @@ const SelectInput = React.forwardRef(function SelectInput(props, ref) {
onBlur={handleBlur}
onFocus={onFocus}
{...SelectDisplayProps}
+ className={clsx(
+ classes.root, // TODO v5: merge root and select
+ classes.select,
+ classes.selectMenu,
+ classes[variant],
+ {
+ [classes.disabled]: disabled,
+ },
+ className,
+ SelectDisplayProps.className
+ )}
// The id is required for proper a11y
id={buttonId}
>
¿Quieres trabajar en una solicitud de extracción? :)
Me gustaría intentarlo. ¿Me lo puedes asignar?
Hola,
Perdón por la respuesta tardía, estaba en mi trabajo: sweat_smile:
Me alegro de que fuera un problema real y no de mi mente, y que se solucionará: D
Gracias @reedanders por las relaciones públicas.