segment
in 变量_layout.svelte
适用于undefined
主页和错误页面。我想为这些页面以不同的方式呈现页面,但无法在_layout.svelte
.
问问题
930 次
2 回答
0
由于Sapper 0.28.9
可以在 中$page.error
使用_layout.svelte
:
<script>
import { stores } from '@sapper/app';
const { page } = stores();
</script>
{#if !$page.error}
<!-- error pages sit outside of the default layout-->
<slot />
{:else}
<fancy-layout>
<slot />
</fancy-layout>
{/if}
于 2020-12-19T14:35:31.057 回答
0
从版本开始,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
,具体取决于您所在的页面。
于 2019-10-28T01:39:52.020 回答