Как _layout.svelte узнает, находится ли он на странице ошибок? - PullRequest
0 голосов
/ 19 октября 2019

Переменная segment в _layout.svelte равна undefined как для домашней страницы, так и для страницы ошибки. Я хочу, чтобы страница отображалась по-разному для этих страниц, но не могу найти способ в _layout.svelte.

1 Ответ

0 голосов
/ 28 октября 2019

Начиная с версии Sapper 0.27.9 это невозможно.

Однако, есть обходной путь.

Зайдите в свой проект и отредактируйте файл по этому пути

[project-name]/node_modules/sapper/runtime/app.mjs

Перейдите к функции handle_error и найдите const props = {...

измените ключ segments: preloaded: значение на segments: ['_error']

Теперь перейдите к функции hydrate_target

, измените const segments = page.path.split('/').filter(Boolean); на

const segments = page.path === '/' ? ['index'] : page.path.split('/').filter(Boolean);

Как только вы это сделаете, запустите ваше приложение с npm run dev, и segment теперь должно быть _error или index вместо undefined, в зависимости от страницы, на которой вы находитесь.

...