跳至主要內容
版本:v18.0.0

loadEntryPoint

loadEntryPoint

此函數設計為與 EntryPointContainer 一起使用,以實作「隨取即渲染」模式。

除非在不再被參考時對它們調用 .dispose(),否則從 loadEntryPoint 返回的進入點參考會將資料洩漏到 Relay 儲存區(如果它們有相關的查詢)。因此,請盡可能優先使用 useEntryPointLoader,這可以確保正確地為您處置進入點參考。請參閱 useEntryPointLoader 文件以取得更完整的範例。

const EntryPoint = require('MyComponent.entrypoint.js');

const {loadQuery} = require('react-relay');

// Generally, your component should access the environment from the React context,
// and pass that environment to this function.
const getEntrypointReference = environment => loadEntryPoint(
{ getEnvironment: () => environment },
EntryPoint,
{id: '4'},
);

// later: pass entryPointReference to EntryPointContainer
// Note that EntryPoint references should have .dispose() called on them,
// which is missing in this example.

引數

  • environmentProvider:Relay Environment 執行個體的提供者,用於執行請求。如果您在 React 元件中的某處開始此請求,您可能需要使用從使用 useRelayEnvironment 取得的環境。
  • EntryPoint:要載入的進入點。
  • entryPointParams:將傳遞給 EntryPoint 的 getPreloadProps 方法的參數。

Flow 類型參數

  • TEntryPointParams:對應於 EntryPoint 的 getPreloadProps 方法的第一個參數類型的類型參數。
  • TPreloadedQueries:傳遞給 EntryPoint 元件的 queries 參數的類型。
  • TPreloadedEntryPoints:傳遞給 EntryPoint 元件的 entrypoints 參數的類型。
  • TRuntimeProps:傳遞給 EntryPointContainerprops 屬性的類型。此物件也會以 props 的形式傳遞到 EntryPoint 元件。
  • TExtraProps:如果 EntryPoint 的 getPreloadProps 方法傳回具有 extraProps 屬性的物件,則這些額外的屬性將會以 extraProps 的形式傳遞到 EntryPoint 元件。
  • TEntryPointComponent:EntryPoint 的類型。
  • TEntryPoint:EntryPoint 的類型。

傳回值

具有以下屬性的進入點參考

  • dispose:一個方法,可以從儲存區釋放此 EntryPoint 載入的任何查詢參考(包括間接方式,透過其他 EntryPoint)。這可能會導致這些查詢參考所參考的資料被垃圾收集。

傳回值的確切格式是不穩定的,並且極有可能變更。我們強烈建議不要使用傳回值的任何其他屬性,因為此類程式碼在升級到 Relay 的未來版本時極有可能損壞。相反地,請將 loadEntryPoint() 的結果傳遞給 EntryPointContainer

行為

  • 當調用 loadEntryPoint() 時,EntryPoint 的每個關聯查詢(如果有的話)都會載入其查詢資料和查詢 AST。一旦查詢 AST 和資料都可用,資料將被寫入儲存區。這與 prepareEntryPoint_DEPRECATED 的行為不同,後者僅在用 usePreloadedQuery 呈現該查詢時才會將關聯查詢中的資料寫入儲存區。
  • Relay 儲存區將保留 EntryPoint 參考的關聯查詢參考,防止資料被垃圾收集。一旦您在 EntryPoint 參考上調用 .dispose(),關聯查詢中的資料將很可能被垃圾收集。
  • 如果 loadEntryPoint 在 React 的渲染階段期間被調用,則可能會擲回錯誤。