Solid Start 中如何正确获取路由参数?
我在用 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>;
}
useParams钩子,而不是routeData。看起来你可能是遇到了一些导入上的问题。确保你正确导入了useParams。这里有一个简单的例子:首先,确保你的路由文件设置正确,例如
/routes/user/[id].jsx。然后在组件内部使用useParams来获取参数。代码如下:这样你应该就能正确获取到动态路由中的
id参数了。useParams返回的是一个对象,包含了所有的路由参数,你可以通过对应的键名来访问这些参数。记得检查你的路由文件路径是否正确,这样才能确保useParams能正常工作。