如何在svelte / sapper组件中相对于当前页面进行链接?

时间:2019-07-03 05:11:18

标签: svelte sapper

在分页器模板中有一个组件。当前,无论href是采用localhost:3000/还是page的形式,所有链接的行为都好像是相对于根(在这种情况下为/page)一样,(我什至尝试了{{ 1}}。)

因此对于分页,我只想修改查询字符串,我必须将当前视图的完整路径传递给href的组件,这有点麻烦。相对链接无效,我在做错什么吗? (如果有一种方法可以使他们直接调用./page,则更好,我输入了“转到页面:[x]”。)如果没有,建议使用一种方法来从内部获取当前路径。组件,这样我就可以把它放在分页组件中吗?

2 个答案:

答案 0 :(得分:2)

当前,Sapper不支持相对链接。

获取当前路径的最佳方法是使用window.location.href,该方法仅在安装组件后才可用。

这是一个已知问题(“ two's complement”),已于2020年5月4日移至“讨论中/ RFC提案”中:

“目前,所有页面都是相同的,这意味着您不能使用相对URL。这是有充分理由引入的,但事实证明会引起问题。”

答案 1 :(得分:0)

如果您的页面例如是http:// localhost:3000 / product / foo,则实际上可能有一种解决方法 在您的foo.svelte文件中,通常通常是这样的:

<a href="#anchor"> link to same page </a>

但是在sapper中,您必须将页面放置为完整路径:

    <a href="product/foo#anchor"> link to same page </a>

测试于: “ sapper”:“ ^ 0.28.10”, “ svelte”:“ ^ 3.29.4”