Доступен ли глобальный объект «theme» во всех файлах в Material-ui?

#material-ui

#material-ui

Вопрос:

Я следил за руководством по Material-UI, чтобы изучить Material-UI. В 9:25 он передает «theme» функции makeStyles. Мой вопрос в том, «Как значения объекта темы доступны там просто так? так, чтобы к ним можно было получить доступ в последующем теле, таком как theme.breakpoints.down («sm»), например.Эта «тема» пока не определена в файле. Я попытался прочитать документацию, и в ней ничего не упоминается об этом совершенно правильно. документация makestyles.Может ли кто-нибудь объяснить мне, что там происходит?

Ответ №1:

ВMaterial UI есть функция, вызываемая createMuiTheme , и ее основная цель — создать muiTheme глубокое объединение значений по умолчанию с пользовательскими параметрами темы и сохранить его в defaultTheme константе https://github.com/mui-org/material-ui/blob/master/packages/material-ui/src/styles/defaultTheme.js

и в makeStyles функции он просто импортирует это defaultTheme https://github.com/mui-org/material-ui/blob/master/packages/material-ui/src/styles/makeStyles.js

надеюсь, это было бы полезно

Комментарии:

1. Спасибо. Однако есть небольшой вопрос. Итак, это должно было быть makeStyles(defaultTheme => { color: defaultTheme.palette.common.main } вместо` makeStyles(theme => { color: theme. палитра.common. main }`. Верно? Как просто ссылка на «theme» указывает на defaultTheme в более позднем случае?. Вопрос может быть глупым. Но я новичок. Поэтому было бы полезно, если бы вы могли указать некоторые другие полезные ресурсы для понимания.

2. нет, не совсем, оба этих 2 кода верны, потому что makeStyles заполнили бы этот вариант, и вы можете назвать его как хотите. это просто название и makeStyles оно заполнит его для вас.