我正在尝试在登录后重定向到/login?ref=/some/path
参数指定的路径:
const ref = $page.url.searchParams.get('ref') || '/dashboard';
然而我遇到了这个错误:
TypeError: Cannot read properties of undefined (reading 'searchParams')
我正在尝试在登录后重定向到/login?ref=/some/path
参数指定的路径:
const ref = $page.url.searchParams.get('ref') || '/dashboard';
然而我遇到了这个错误:
TypeError: Cannot read properties of undefined (reading 'searchParams')
上述解决方案不可行。以下是新的方法:
export async function load({ params, url }) {
let lang = url.searchParams.get('lang');
let q = url.searchParams.get('q');
return { lang, q };
}
那么,请按照以下方式操作:
import { page } from '$app/stores';
$page.data.q
export var lang
要好得多。$page.data
用于一个页面 需要访问子页面或布局的数据:https://kit.svelte.dev/docs/load#using-url-data https://kit.svelte.dev/docs/load#$page-data - Big_Boulard您可以从传递给页面的load
函数的对象的url
属性中获取查询字符串参数:
<script context="module">
export function load({ url }) {
const ref = url.searchParams.get('ref') || '/dashboard';
return {
props: {
ref
}
};
}
</script>
<script>
export let ref;
// do stuff
</script>
有关load
函数、其输入格式和其反应性的更多信息,请参见此处(SvelteKit文档)。
$page
中获取它? - chovyHeader
组件的代码。顺便说一句,这也是你尝试在自己的代码中实现的方式,所以你可能需要检查一下你的SvelteKit版本是否是最新的。 - Thomas Hennes "@sveltejs/kit": "next",
- chovyimport { page } from '$app/stores'
$page.url.searchParams.get('ref')