useSelectedLayoutSegment
useSelectedLayoutSegment
是一個客戶端元件 hook,可讓您讀取從中呼叫的佈局下方一層的活動路由區段。
它適用於導覽 UI,例如根據活動子區段更改樣式的父佈局內的索引標籤。
app/example-client-component.tsx
'use client'
import { useSelectedLayoutSegment } from 'next/navigation'
export default function ExampleClientComponent() {
const segment = useSelectedLayoutSegment()
return <p>Active segment: {segment}</p>
}
須知:
- 由於
useSelectedLayoutSegment
是一個 客戶端元件 hook,而佈局預設為 伺服器元件,因此useSelectedLayoutSegment
通常是透過匯入佈局的客戶端元件來呼叫的。useSelectedLayoutSegment
只會回傳下一層的區段。要回傳所有活動區段,請參閱useSelectedLayoutSegments
參數
const segment = useSelectedLayoutSegment(parallelRoutesKey?: string)
useSelectedLayoutSegment
可以選擇性地接受一個 parallelRoutesKey
參數,讓您讀取該區塊中的活動路由區段。
回傳值
useSelectedLayoutSegment
會回傳活動區段的字串,如果不存在則回傳 null
。
例如,根據以下的佈局和網址,回傳的區段將會是:
佈局 | 造訪的網址 | 回傳的區段 |
---|---|---|
app/layout.js | / | null |
app/layout.js | /dashboard | 'dashboard' |
app/dashboard/layout.js | /dashboard | null |
app/dashboard/layout.js | /dashboard/settings | 'settings' |
app/dashboard/layout.js | /dashboard/analytics | 'analytics' |
app/dashboard/layout.js | /dashboard/analytics/monthly | 'analytics' |
範例
這有幫助嗎?