Компоненты React Admin Input всегда добавляют дополнительное пространство для helperText - PullRequest
0 голосов
/ 25 февраля 2020

Недавно компоненты ввода 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.

Я что-то упустил или это действительно ошибка?

1 Ответ

0 голосов
/ 19 марта 2020

Это функция:

https://github.com/marmelab/react-admin/pull/4364

сомнительная функция.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...