@lynx-js/react / createPortal
Function: createPortal()
Renders vnode into container instead of the current component's position
in the element tree, while keeping it in the React tree.
container is a NodesRef, obtained either from a callback ref or from
lynx.createSelectorQuery().select(...).
Availability
- Added in
@lynx-js/react0.121.0. - The declared return type is
ReactNodesince 0.123.3. In 0.123.2 and earlier it is Preact'sVNode<any> | null; there is no runtime difference.
Parameters
Returns
ReactNode
A ReactNode placeholder to include in the JSX at the call site;
the rendered output goes into container.
Remarks
Context still flows across the portal boundary, and state updates inside the
portal behave like they do in any other component. A few behaviors differ
from react-dom:
- Events do not bubble along the React tree. ReactLynx follows Preact's approach, which has no synthetic event system, so events follow the actual element structure of the page.
- The portaled subtree renders on the background thread only, and does not participate in main-thread first-screen rendering.
- Mounting across pages or across native containers is not supported.
Defined in
@lynx-js/react/runtime/lib/snapshot/lynx/portals.d.ts:31