このドキュメントはAIによって翻訳されました。正確な情報については英語版をご参照ください。
React 要素、HTML 文字列、または DOM ノードを、指定されたコンテナにレンダリングします。container を指定しない場合は、デフォルトで ctx.element にレンダリングされ、アプリケーションの ConfigProvider やテーマなどのコンテキストを自動的に継承します。
| シーン | 説明 |
|---|---|
| JSBlock | ブロックのカスタムコンテンツ(チャート、リスト、カードなど)のレンダリング |
| JSField / JSItem / JSColumn | 編集可能なフィールドやテーブル列のカスタム表示のレンダリング |
| 詳細ブロック | 詳細ページにおけるフィールド表示形式のカスタマイズ |
注意:
ctx.render()にはレンダリング先のコンテナが必要です。containerが渡されず、かつctx.elementが存在しない場合(UI のない純粋なロジックのみのシーンなど)、エラーがスローされます。
| 引数 | 型 | 説明 |
|---|---|---|
vnode | React.ReactElement | Node | DocumentFragment | string | レンダリングするコンテンツ |
container | Element | DocumentFragment(任意) | レンダリング先のコンテナ。デフォルトは ctx.element |
戻り値:
ReactDOMClient.Root を返します。これにより、後続の root.render() を呼び出して更新することが容易になります。null を返します。| 型 | 動作 |
|---|---|
React.ReactElement(JSX) | React の createRoot を使用してレンダリングされます。完全な React の機能を備え、アプリケーションのコンテキストを自動的に継承します。 |
string | DOMPurify で洗浄(サニタイズ)された後、コンテナの innerHTML に設定されます。既存の React ルートは事前にアンマウントされます。 |
Node(Element、Text など) | コンテナをクリアした後、appendChild で追加されます。既存の React ルートは事前にアンマウントされます。 |
DocumentFragment | フラグメントの子ノードがコンテナに追加されます。既存の React ルートは事前にアンマウントされます。 |
ctx.render() を呼び出すたびに、コンテナ内の既存の内容は置き換えられ、追加はされません。ctx.element.innerHTML は非推奨です。統一して ctx.render() を使用してください。ctx.element が undefined になるシーン(ctx.importAsync でロードされたモジュール内など)では、明示的に container を渡す必要があります。ctx.render() に container が渡されない場合に使用されます。ctx.render() と組み合わせて使用します。