Добавление className в SelectDisplayProps
фактически отменяет существующие classNames
у меня есть составная часть. Когда я хочу дать className для div, отображающего выбранное значение Select, вместо добавления className к другим, как каждый компонент пользовательского интерфейса материала, он переопределяет их.
У меня есть компонент <Select />
, когда я добавляю className
в SelectDisplayProps
, он отменяет существующие имена классов компонента, отображающего выбранное значение в .
Он не должен переопределять существующие имена классов, а добавляться к ним.
Здесь вы можете найти песочницу, чтобы увидеть ошибку: https://codesandbox.io/s/material-ui-issue-forked-oi0vd
Шаги:
SelectDisplayProps
есть объект:SelectDisplayProps={{
className: classes.selectDisplay
}}
SelectDisplayProps
изменится на undefined, как если бы вы его не указали.SelectDisplayProps
, есть класс по умолчанию пользовательского интерфейса материала. Но когда указан SelectDisplayProps
, className исчезаетЯ хочу переопределить стиль элемента, отображающего значение выбора. Проблема существует, даже если я полностью изменю стиль, который пытаюсь дать, поэтому я не думаю, что это связано.
| Технология | Версия |
| ----------- | ------- |
| Материал-UI | v4.11.0 |
| React | 16.13.1 |
| Браузер | Chrome - версия 86.0.4240.75 (официальная сборка) (64-разрядная версия) |
| TypeScript | 3.9.5 |
@Newpoki Спасибо за отчет, я могу подтвердить проблему. Что вы думаете об этом исправлении?
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}
>
Вы хотите работать над pull-реквестом? :)
Я бы хотел попробовать. Вы можете назначить это мне?
Привет,
Извините за поздний ответ, я был на своей работе: sweat_smile:
Рад, что это была реальная проблема, и не в моей голове, и что она будет исправлена: D
Спасибо @reedanders за пиар.