跳至主要内容
版本: 6.x

useLinkBuilder

useLinkBuilder 钩子允许我们构建一个路径,用于当前导航器状态中屏幕的链接。它返回一个函数,该函数接受要聚焦的屏幕的 nameparams,并根据 linking 选项 返回路径。

import { Link, CommonActions, useLinkBuilder } from '@react-navigation/native';

// ...

function DrawerContent({ state, descriptors }) {
const buildLink = useLinkBuilder();

return state.routes((route) => (
<Link
to={buildLink(route.name, route.params)}
action={CommonActions.navigate(route.name)}
>
{descriptors[route.key].options.title}
</Link>
));
}

此钩子旨在用于导航器中,以显示指向其中各个页面的链接,例如抽屉和标签导航器。如果您正在构建自定义导航器、自定义抽屉内容、自定义标签栏等,那么您可能需要使用此钩子。

需要注意一些重要事项

  • 目标屏幕必须存在于当前导航器中。它不能位于父导航器中,也不能位于嵌套在子级中的导航器中。
  • 它旨在仅用于自定义导航器,以保持它们在多个应用程序中的可重用性。对于您的常规应用程序代码,请直接使用路径,而不是为屏幕构建路径,或者使用 LinkuseLinkProps,它们会透明地处理路径。