0

segmentin 变量_layout.svelte适用于undefined主页和错误页面。我想为这些页面以不同的方式呈现页面,但无法在_layout.svelte.

4

2 回答 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 devsegment现在应该是_errorindex代替undefined,具体取决于您所在的页面。

于 2019-10-28T01:39:52.020 回答