useLinkBuilder
useLinkBuilder
Hook 可讓我們為目前導航器狀態中畫面的連結建置路徑。它會傳回一個函式,此函式採用畫面的 name
和 params
來聚焦,並根據 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>
));
}
此 Hook 預計用在導航器中,以顯示其中各種畫面的連結,例如抽屜和標籤導航器。如果您正在打造自訂導航器、自訂抽屜內容、自訂標籤列,您可能希望使用此 Hook。
有幾件重要事項需注意
- 目標畫面必須存在目前的導航器中。它不能存在於父導航器或子導航器中。
- 預計僅用在自訂導航器中,讓其能重複用於多個應用程式。對於常規應用程式程式碼,請直接使用路徑,而不是為畫面建置路徑,或使用
Link
和useLinkProps
,以透明地處理路徑。