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

loadEntryPoint

loadEntryPoint

此函数旨在与 EntryPointContainer 一起使用,以实现“边渲染边获取”模式。

loadEntryPoint 返回的入口点引用将数据泄漏到 Relay 存储(如果它们具有关联的查询),除非在它们不再被引用时调用 .dispose()。因此,尽可能使用 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 环境实例的提供程序。如果你在 React 组件中的某个地方启动此请求,你可能想要使用从使用 useRelayEnvironment 获得的环境。
  • EntryPoint:要加载的入口点。
  • entryPointParams:将传递给入口点的 getPreloadProps 方法的参数。

流类型参数

  • TEntryPointParams:与入口点的 getPreloadProps 方法的第一个参数的类型相对应的类型参数。
  • TPreloadedQueries:传递给入口点组件的 queries 参数的类型。
  • TPreloadedEntryPoints:传递给入口点组件的 entrypoints 参数的类型。
  • TRuntimeProps:传递给 EntryPointContainerprops 道具的类型。此对象也被传递给入口点组件,也作为 props
  • TExtraProps:如果入口点的 getPreloadProps 方法返回一个包含 extraProps 属性的对象,这些额外的道具将作为 extraProps 传递给入口点组件。
  • TEntryPointComponent:入口点的类型。
  • TEntryPoint:入口点的类型。

返回值

具有以下属性的入口点引用

  • dispose:一个方法,将释放由此入口点加载的任何查询引用(包括间接地,通过其他入口点)不被存储保留。这可能导致这些查询引用引用的数据被垃圾回收。

返回值的确切格式不稳定,很可能会改变。我们强烈建议不要使用返回值的任何其他属性,因为这种代码在升级到 Relay 的未来版本时很可能会出现问题。相反,将 loadEntryPoint() 的结果传递给 EntryPointContainer

行为

  • 当调用 loadEntryPoint() 时,入口点的每个关联查询(如果有)将加载它们的查询数据和查询 AST。一旦查询 AST 和数据都可用,数据将被写入存储。这与 prepareEntryPoint_DEPRECATED 的行为不同,后者只会在关联查询使用 usePreloadedQuery 渲染时将数据从关联查询写入存储。
  • 入口点引用的关联查询引用将被 Relay 存储保留,防止其数据被垃圾回收。一旦你调用入口点引用上的 .dispose(),关联查询的数据就有可能被垃圾回收。
  • 如果在 React 的渲染阶段调用 loadEntryPoint,它可能会抛出错误。

此页面是否有用?

通过以下方式帮助我们使网站变得更好 回答几个简短的问题.