SolidJS Router无法识别App.jsx问题求助
问题排查与解决
问题1:使用<Router root={App}/>页面空白
最新版SolidJS Router已经移除了root属性,这是旧版本的用法,现在必须把App组件作为Router的子元素传入才能正常渲染。
错误写法:
// index.jsx import { Router } from "@solidjs/router"; import App from "./App"; render(() => <Router root={App} />, document.getElementById("root"));
正确写法:
// index.jsx import { Router } from "@solidjs/router"; import App from "./App"; render(() => ( <Router> <App /> </Router> ), document.getElementById("root"));
问题2:将Container置于Router内页面空白
这种情况大概率是以下两个原因之一:
- 路由未正确配置:如果App组件内部没有定义任何
<Route>规则,Router找不到可渲染的路由内容,就会显示空白。需要在App里添加至少一个基础路由,比如:
// App.jsx import { Routes, Route } from "@solidjs/router"; import Home from "./pages/Home"; import Navbar from "./components/Navbar"; export default function App() { return ( <div> <Navbar /> {/* 这里可正常使用<A>组件 */} <Routes> <Route path="/" component={Home} /> </Routes> </div> ); }
- Container样式问题:检查Container组件的CSS,是否设置了
display: none、height: 0、overflow: hidden这类会隐藏内容的属性,或是布局层级导致内容被挤出可视区域。
另外要确认<A>组件确实从@solidjs/router导入,而非普通<a>标签,避免路由功能失效。
内容的提问来源于stack exchange,提问作者Trisk Khan
相关产品推荐
相关产品推荐

