Shadow DOM здесь кажется разумным вариантом. Вы можете создавать свои теги стиля внутри теневого DOM, не имея дело с префиксами селектора. Например, используя пакет реагировать-тень :
import root from 'react-shadow';
Затем в JSX что-то вроде:
<root.div>
<style type="text/css">
{/* CSS string here */}
</style>
<div>
{/* Stuff here */}
</div>
</root.div>
Проверьте рабочий пример этого здесь: https://github.com/joshdavenport/stack-overflow-61566764-react-css-shadow-dom
Основным недостатком здесь является то, что ваши стили вне теневого DOM не будут применяться. Те, кто использует теневой DOM для компонентов, считают это хорошей вещью, просто пытается охватить CSS, а не . Не знаю, что вы делаете, так что я не могу точно сказать, будет ли это проблемой для вас.
Если это так, вы можете повторно импортировать ваши стили в теневой DOM, хотя я не могу точно указать, как это сделать, не зная, какой упаковщик используется и как он используется.
В качестве альтернативы вы можете отделить импортированный CSS с помощью пакета css, перебрать селекторы с префиксом всех случайно сгенерированным классом, а затем повторно stringify .