Menambahkan className di SelectDisplayProps
sebenarnya menimpa classNames yang sudah ada
Saya punya komponen. Ketika saya ingin memberikan className ke div yang menampilkan nilai yang dipilih dari Select, alih-alih menambahkan className ke yang lain seperti setiap komponen material ui, itu menimpanya.
Saya memiliki komponen <Select />
, ketika saya menambahkan className
di SelectDisplayProps
, itu mengganti classNames yang ada dari komponen yang menampilkan nilai yang dipilih di .
Ini seharusnya tidak menimpa classNames yang ada tetapi ditambahkan ke dalamnya.
Di sini Anda dapat menemukan kotak pasir untuk melihat bug: https://codesandbox.io/s/material-ui-issue-forked-oi0vd
Langkah:
SelectDisplayProps
:SelectDisplayProps={{
className: classes.selectDisplay
}}
SelectDisplayProps
menjadi tidak terdefinisi, seolah-olah Anda tidak menentukannya.SelectDisplayProps
, ada kelas default UI material. Tapi ketika SelectDisplayProps
ditentukan, className menghilangSaya ingin mengganti gaya elemen yang menampilkan nilai pemilihan. Masalahnya ada bahkan jika saya benar-benar mengubah gaya yang saya coba berikan, jadi saya tidak berpikir itu terkait.
| Teknologi | Versi |
| ----------- | ------- |
| Materi-UI | v4.11.0 |
| Bereaksi | 16.13.1 |
| Browser | Chrome - Versi 86.0.4240.75 (Build Resmi) (64-bit) |
| TypeScript | 3.9.5 |
@Newpoki Terima kasih atas laporannya, saya dapat mengonfirmasi masalahnya. Apa pendapat Anda tentang perbaikan ini?
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}
>
Apakah Anda ingin mengerjakan permintaan tarik? :)
Saya ingin mencobanya. Bisakah Anda memberikannya kepada saya?
Halo,
Maaf atas balasan yang terlambat, saya berada di pekerjaan saya: sweat_smile:
Senang Itu adalah masalah nyata dan bukan dari pikiran saya, dan itu akan diperbaiki: D
Terima kasih @reedanders untuk PR-nya.