useSelectedLayoutSegments
useSelectedLayoutSegments это компонент клиента хук, который позволяет вам читать активные сегменты маршрута ниже макета, из которого он вызван.
Он полезен для создания пользовательского интерфейса в родительских макетах, которым требуется информация об активных дочерних сегментах, таких как хлебные крошки.
'use client'
import { useSelectedLayoutSegments } from 'next/navigation'
export default function ExampleClientComponent() {
const segments = useSelectedLayoutSegments()
return (
<ul>
{segments.map((segment, index) => (
<li key={index}>{segment}</li>
))}
</ul>
)
}Важно знать:
- Поскольку
useSelectedLayoutSegmentsэто хук компонента клиента, а макеты по умолчанию являются компонентами сервера,useSelectedLayoutSegmentsобычно вызывается через компонент клиента, который импортируется в макет.- Возвращаемые сегменты включают группы маршрутов, которые, возможно, не должны включаться в ваш пользовательский интерфейс. Вы можете использовать метод массива
filter()для удаления элементов, начинающихся с скобки.
Параметры
const segments = useSelectedLayoutSegments(parallelRoutesKey?: string)
useSelectedLayoutSegments необязательно принимает parallelRoutesKey, что позволяет вам прочитать активный сегмент маршрута в этом слоте.
Возвращаемое значение
useSelectedLayoutSegments возвращает массив строк, содержащих активные сегменты на один уровень ниже макета, из которого был вызван хук. Или пустой массив, если таковых нет.
Например, при заданных макетах и URL-адресах ниже возвращаемые сегменты будут:
| Макет | Посещённый URL | Возвращаемые сегменты |
|---|---|---|
app/layout.js |
/ |
[] |
app/layout.js |
/dashboard |
['dashboard'] |
app/layout.js |
/dashboard/settings |
['dashboard', 'settings'] |
app/dashboard/layout.js |
/dashboard |
[] |
app/dashboard/layout.js |
/dashboard/settings |
['settings'] |
История версий
| Версия | Изменения |
|---|---|
v13.0.0 |
useSelectedLayoutSegments представлен. |
© 2024 Vercel, Inc.
Licensed under the MIT License.
https://nextjs.org/docs/app/api-reference/functions/use-selected-layout-segments