В пользовательском интерфейсе материала внутри теневого домена отсутствуют стили для последующего вызова веб-компонента - PullRequest
0 голосов
/ 13 июля 2020

У нас есть веб-компонент, написанный на React с Material-ui. Этот веб-компонент будет использоваться в приложении angular.

Изначально у нас была проблема, заключающаяся в том, что стили материалов не применялись к элементам внутри теневого пространства. Итак, мы следовали решению, приведенному здесь: Как монтировать стили внутри тени root с помощью cssinjs / jss для использования StylesProvider с точкой вставки jss, установленной на элемент внутри теневого dom.

Это решение сработало для нас при первом вызове веб-компонента. Но в приложении для хостинга angular у нас есть код для условного рендеринга этого веб-компонента. Когда мы выполняем рендеринг в первый раз, этот веб-компонент отображается отлично. мы видим, что все необходимые стили находятся внутри теневого дома. Но для последующего рендеринга этот CSS / стили отсутствуют в теневом домене. Есть идеи, как go решить эту проблему?

1 Ответ

0 голосов
/ 17 июля 2020

В «@ material-ui / core»: «^ 4.10.0» мне удалось исправить эту проблему, передав «new Map ()» для свойства sheetManager для StylesProvider при воссоздании веб-компонента. Это хакерство, но вроде работает.

Вот как это выглядит.

...