diff --git a/packages/renderer-core/src/renderer/base.tsx b/packages/renderer-core/src/renderer/base.tsx index 02b0b61b3..965d6ae1d 100644 --- a/packages/renderer-core/src/renderer/base.tsx +++ b/packages/renderer-core/src/renderer/base.tsx @@ -268,9 +268,32 @@ export default function baseRenererFactory() { this.setLocale = (loc: string) => this.appHelper?.utils?.i18n?.setLocale && this.appHelper?.utils?.i18n?.setLocale(loc); }; + __writeCss = () => { + const css = getValue(this.props.__schema, 'css', ''); + let style = this.styleElement; + if (!this.styleElement) { + style = document.createElement('style'); + style.type = 'text/css'; + style.setAttribute('from', 'style-sheet'); + if (style.firstChild) { + style.removeChild(style.firstChild); + } + const head = document.head || document.getElementsByTagName('head')[0]; + head.appendChild(style); + this.styleElement = style; + } + + if (style.innerHTML === css) { + return; + } + + style.innerHTML = css; + }; + __render = () => { const schema = this.props.__schema; this.__setLifeCycleMethods('render'); + this.__writeCss(); const { engine } = this.context; if (engine) {