Почему material-ui v4 объявляет useTheme, но не реализует? - PullRequest
1 голос
/ 27 июня 2019

Я совершенно сбит с толку новым API-интерфейсом Hooks в Material-uiV4.

@ material-ui / core объявляет export default function useTheme<T = Theme>(): T;, но не реализует это, поскольку выдает ошибки.В документации сказано, что вы должны импортировать из @ material-ui / styles, который работает, но тип установлен в неизвестное значение.

export default function useTheme<T>(): T;

Почему не работает @ material-ui / stylesВ версии по умолчанию есть T = Theme?
Почему в @ material-ui / core для начала есть объявление?

1 Ответ

1 голос
/ 27 июня 2019

Вот ссылки на соответствующий код и файлы декларации TypeScript:

@material-ui/styles обеспечивает функциональность стиля таким образом,который полностью независим от @material-ui/core (@material-ui/core зависит от @material-ui/styles, но @material-ui/styles равен , а не зависит от @material-ui/core).

ThemeProvider и *Функциональность 1056 * в @material-ui/styles может использоваться с любой структурой темы , так что для нее вполне достаточно иметь тип неизвестного.useTheme в @material-ui/core - это в основном оболочка для версии @material-ui/styles, но предполагается, что структура темы соответствует теме по умолчанию для Material-UI, и если тема не была предоставлена ​​(через ThemeProvider), то она будетвернуть тему по умолчанию (тогда как версия @material-ui/styles не имеет понятия "темы по умолчанию").

В документации сказано, что вы должны импортировать из @ material-ui / styles

Мне любопытно узнать, какая часть документации говорит об этом.Пока вы используете структуру тем Material-UI, я бы рекомендовал импортировать useTheme из @material-ui/core/styles.

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