Este documento ha sido traducido por IA. Para información precisa, consulte la versión en inglés.
Una instancia de ElementProxy que apunta al contenedor DOM del sandbox, sirviendo como el objetivo de renderizado predeterminado para ctx.render(). Está disponible en escenarios donde existe un contenedor de renderizado, como JSBlock, JSField, JSItem y JSColumn.
| Escenario | Descripción |
|---|---|
| JSBlock | El contenedor DOM para el bloque, utilizado para renderizar contenido personalizado del bloque. |
| JSField / JSItem / FormJSFieldItem | El contenedor de renderizado para un campo o elemento de formulario (generalmente un <span>). |
| JSColumn | El contenedor DOM para una celda de tabla, utilizado para renderizar contenido personalizado de la columna. |
Nota:
ctx.elementsolo está disponible en contextos de RunJS que tienen un contenedor de renderizado. En contextos sin interfaz de usuario (como lógica puramente de backend), puede serundefined. Se recomienda realizar una comprobación de valores nulos antes de su uso.
Recomendado: Todo el renderizado debe realizarse a través de ctx.render(). Evite usar las API de DOM de ctx.element directamente (por ejemplo, innerHTML, appendChild, querySelector, etc.).
| Ventaja | Descripción |
|---|---|
| Seguridad | Control de seguridad centralizado para evitar XSS y operaciones DOM inadecuadas. |
| Soporte para React | Soporte completo para JSX, componentes de React y ciclos de vida. |
| Herencia de contexto | Hereda automáticamente el ConfigProvider de la aplicación, temas, etc. |
| Gestión de conflictos | Gestiona automáticamente la creación/desmontaje de la raíz de React para evitar conflictos de múltiples instancias. |
ctx.element.innerHTMLestá obsoleto. Por favor, utilicectx.render()en su lugar.
Cuando necesite abrir un Popover utilizando el elemento actual como anclaje, puede acceder a ctx.element?.__el para obtener el DOM original como target:
Use
__elsolo en escenarios como "usar el contenedor actual como anclaje"; no manipule el DOM directamente en otros casos.
ctx.render(vnode) sin un argumento container, se renderiza en el contenedor ctx.element por defecto.ctx.element y no se proporciona un container, se lanzará un error.ctx.render(vnode, customContainer).ctx.element está destinado al uso interno de ctx.render(). No se recomienda acceder o modificar directamente sus propiedades o métodos.ctx.element será undefined. Asegúrese de que el contenedor esté disponible o pase un container manualmente antes de llamar a ctx.render().innerHTML/outerHTML en ElementProxy se sanean mediante DOMPurify, se sigue recomendando usar ctx.render() para una gestión de renderizado unificada.