L'ajout d'un nom de classe dans le SelectDisplayProps
remplace en fait ses noms de classe existants
j'ai un composant. Lorsque je veux donner un className au div qui affiche la valeur sélectionnée de Select, au lieu d'ajouter le className aux autres comme chaque composant matériel de l'interface utilisateur, il les remplace.
J'ai un composant <Select />
, quand j'ajoute un className
dans SelectDisplayProps
, il supplante les noms de classe existants du composant qui affichent la valeur sélectionnée dans le .
Il ne doit pas remplacer les noms de classe existants mais leur être ajouté.
Ici vous pouvez trouver un bac à sable pour voir le bogue: https://codesandbox.io/s/material-ui-issue-forked-oi0vd
Pas:
SelectDisplayProps
:SelectDisplayProps={{
className: classes.selectDisplay
}}
SelectDisplayProps
en indéfini, comme si vous n'en aviez pas spécifié un.SelectDisplayProps
, il y a la classe par défaut de l'interface utilisateur matérielle. Mais lorsque le SelectDisplayProps
est spécifié, le nom de classe disparaîtJe souhaite remplacer le style de l'élément qui affiche la valeur de sélection. Le problème existe même si je change totalement le style que j'essaie de donner, donc je ne pense pas que ce soit lié.
| Tech | Version |
| ----------- | ------- |
| Material-UI | v4.11.0 |
| React | 16.13.1 |
| Navigateur | Chrome - Version 86.0.4240.75 (version officielle) (64 bits) |
| TypeScript | 3.9.5 |
@Newpoki Merci pour le rapport, je peux confirmer le problème. Que pensez-vous de ce correctif?
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}
>
Voulez-vous travailler sur une pull-request? :)
J'aimerais essayer. Pouvez-vous me l'attribuer?
Bonjour,
Désolé pour la réponse tardive, j'étais à mon travail: sweat_smile:
Heureux que c'était un vrai problème et pas de mon esprit, et que ça va être corrigé: D
Merci @reedanders pour le PR.