Solid Start 中如何正确获取路由参数?

UE丶晶晶 阅读 12

我在用 Solid Start 做一个带动态路由的页面,比如 /user/[id],但不知道怎么在组件里拿到这个 id 参数。

试过用 useParams(),但提示不是函数,也查了文档没找到明确例子,是不是要用 server$ 或者 routeData?

目前路由文件是这样写的:

import { createRouteData } from 'solid-start';

export function routeData() {
  return {};
}

export default function UserPage() {
  // 这里想拿到 URL 里的 id
  return <div>User profile</div>;
}
我来解答 赞 7 收藏
二维码
手机扫码查看
1 条解答
开发者万莉
在 Solid Start 中获取路由参数,你需要用到 useParams 钩子,而不是 routeData。看起来你可能是遇到了一些导入上的问题。确保你正确导入了 useParams。这里有一个简单的例子:

首先,确保你的路由文件设置正确,例如 /routes/user/[id].jsx。然后在组件内部使用 useParams 来获取参数。代码如下:

import { useParams } from 'solid-start';

export default function UserPage() {
const params = useParams();
const userId = params.id; // 这里获取到的就是 URL 中的 id 参数

return <div>User profile for {userId}</div>;
}


这样你应该就能正确获取到动态路由中的 id 参数了。useParams 返回的是一个对象,包含了所有的路由参数,你可以通过对应的键名来访问这些参数。记得检查你的路由文件路径是否正确,这样才能确保 useParams 能正常工作。
点赞
2026-03-23 01:05