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:传递给EntryPointContainer的props道具的类型。此对象也被传递给入口点组件,也作为props。TExtraProps:如果入口点的getPreloadProps方法返回一个包含extraProps属性的对象,这些额外的道具将作为extraProps传递给入口点组件。TEntryPointComponent:入口点的类型。TEntryPoint:入口点的类型。
返回值
具有以下属性的入口点引用
dispose:一个方法,将释放由此入口点加载的任何查询引用(包括间接地,通过其他入口点)不被存储保留。这可能导致这些查询引用引用的数据被垃圾回收。
返回值的确切格式不稳定,很可能会改变。我们强烈建议不要使用返回值的任何其他属性,因为这种代码在升级到 Relay 的未来版本时很可能会出现问题。相反,将 loadEntryPoint() 的结果传递给 EntryPointContainer。
行为
- 当调用
loadEntryPoint()时,入口点的每个关联查询(如果有)将加载它们的查询数据和查询 AST。一旦查询 AST 和数据都可用,数据将被写入存储。这与prepareEntryPoint_DEPRECATED的行为不同,后者只会在关联查询使用usePreloadedQuery渲染时将数据从关联查询写入存储。 - 入口点引用的关联查询引用将被 Relay 存储保留,防止其数据被垃圾回收。一旦你调用入口点引用上的
.dispose(),关联查询的数据就有可能被垃圾回收。 - 如果在 React 的渲染阶段调用
loadEntryPoint,它可能会抛出错误。
此页面是否有用?
通过以下方式帮助我们使网站变得更好 回答几个简短的问题.