Лучший способ затемнить / отключить div в Material-UI? - PullRequest
0 голосов
/ 13 июля 2020

В моем приложении есть div s, для которых я хочу затемнить и отключить события мыши, в зависимости от состояния компонента - например, загрузки. Первоначальный метод, который я придумал, состоит в том, чтобы иметь вспомогательную функцию, которая возвращает встроенный стиль для затемнения элемента и отключения событий указателя на нем, учитывая логическое значение:

const disableOnTrue = (flag) => {
    return {
        opacity: flag ? 0.15 : 1,
        pointerEvents: flag ? "none" : "initial"
    }
}

и используя его для элементов как таковых. :

{loading && {/** render a loading circle */}}
<div style={disableOnTrue(this.state.loading)}>{/** stuff to be dimmed & disabled while loading */}</div>

В отключенном div есть Material-UI Button s. Однако оказывается, что им все равно, отключены ли pointerEvents на их родительском div и остаются ли они кликабельными, что является большой проблемой. Итак, на Button s пришлось установить disabled={loading}. Затем это приводит к затемнению самих Button, что излишне смешивается с пониженным значением opacity из disableOnTrue, что означает, что мне нужно будет добавить некоторый пользовательский стиль, чтобы улучшить это; Я хочу, чтобы весь div был отключен, а не Button выглядел особенно отключенным.

Я также пробовал использовать компонент Backdrop из материала, но не смог заставить его затемнить что угодно, кроме всего окна просмотра. отсутствует. Я долго искал, но ничего не нашел.

1 Ответ

0 голосов
/ 15 июля 2020
• 1000
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...