Недавно компоненты ввода React Admin начали добавлять дополнительное пространство ниже для отображения helperText (если имеется). Но кажется, что невозможно избежать этого поведения, добавив helperText={false}
, как это рекомендуется, например:
<TextInput source="myField" helperText={false} />
Это всегда отображает некоторое дополнительное пространство, независимо от того, пропущу ли я " false "как значение для heplerText
опоры или нет.
Я сейчас на React Admin версии 3.2.3.
В компоненте RA TextInput
мы можем видеть этот код:
helperText={ // <-- goes to MUI TextField
<InputHelperText
touched={touched}
error={error}
helperText={helperText} // <-- goes to RA InputHelperText
/>
}
Если значение InputHelperText
prop компонента helperText
равно false, тогда InputHelperText
ничего не рендерит (возвращает ноль в своей функции рендеринга). Но значение heplerText
prop, которое идет к лежащему в основе MaterialUI TextField
, никогда не бывает пустым или неопределенным, даже если я передаю «false»: это всегда компонент InputHelperText
, который может что-то отображать или не отображать.
Компонент MaterialUI TextField, в свою очередь, анализирует свою heplerText
prop:
const helperTextId = helperText && id ? `${id}-helper-text` : undefined; // <-- helperText from TextInput
...
{helperText && (
<FormHelperText id={helperTextId} {...FormHelperTextProps}>
{helperText}
</FormHelperText>
)}
Поскольку helperText
никогда не является ни нулевым, ни неопределенным, он всегда будет отображать FormHelperText
, возможно, с пустым helperText
.
Если я изменяю код компонента RA TextInput
следующим образом:
helperText={helperText && touched && error ?
<InputHelperText
touched={touched}
error={error}
helperText={helperText}
/> : null
все работает нормально: дополнительное пространство не добавляется, так как значение helperText
(передается в базовый MUI TextField
) действительно равен нулю, когда значение TextInput
prop's компонента helperText
равно false.
Я что-то упустил или это действительно ошибка?