diff --git a/packages/taro-react/src/reconciler.ts b/packages/taro-react/src/reconciler.ts index 6a16afe2732a..06464fc8101c 100644 --- a/packages/taro-react/src/reconciler.ts +++ b/packages/taro-react/src/reconciler.ts @@ -28,7 +28,10 @@ const hostConfig: HostConfig< unknown, // ChildSet unknown, // TimeoutHandle unknown // NoTimeout -> = { +> & { + hideInstance (instance: TaroElement): void + unhideInstance (instance: TaroElement, props): void +} = { createInstance (type) { return document.createElement(type) }, @@ -94,6 +97,19 @@ const hostConfig: HostConfig< updateProps(dom, oldProps, newProps) }, + hideInstance (instance) { + const style = instance.style + style.setProperty('display', 'none') + }, + + unhideInstance (instance, props) { + const styleProp = props.style + let display = styleProp?.hasOwnProperty('display') ? styleProp.display : null + display = display == null || typeof display === 'boolean' || display === '' ? '' : ('' + display).trim() + // eslint-disable-next-line dot-notation + instance.style['display'] = display + }, + shouldSetTextContent: returnFalse, shouldDeprioritizeSubtree: returnFalse, prepareForCommit: noop,