【发布时间】:2019-09-18 17:37:42
【问题描述】:
React-Router 似乎在我的应用程序中工作,除了我得到一个空白页面而不是我的组件这一事实,即使它被定向到正确的路径。
我正在扫描文档,但在查看并搜索 Google/此站点后,我无法自行解决问题。
我试过...
- 让 router.js 文件只包含路由,以便获得相同的结果。这样做时还要指定确切的路径。
- 将 react-router-dom 重新安装到组件中,以防下载时出错。
- 删除提供程序以防出现问题
- 将router文件中的代码直接放在provider组件标签之间的App.js文件中
这些是涉及的文件。
Router.js
import React from 'react';
import {Route, Switch, Redirect} from 'react-router-dom';
import LandingPage from '../scenes/LandingPage';
import CityPage from '../scenes/CityPage';
const Router = () => {
return (
<Switch>
<Redirect from='/' to='/landing' />
<Route path='/landing' component={LandingPage} />
<Route path='/citypage' component={CityPage} />
</Switch>
);
}
export default Router;
App.js
import React from "react";
import { BrowserRouter } from "react-router-dom";
import Router from "./services/Router";
import ChosenCityContextProvider from "./services/context/ChosenCityContext";
const App = () => {
return (
<BrowserRouter>
<ChosenCityContextProvider>
<Router />
</ChosenCityContextProvider>
</BrowserRouter>
);
};
export default App;
网站呈现时没有错误消息。除了空白页,其他一切似乎都在工作。在 React Dev 工具中,它声明 Router.Consumer 有一个对象,该对象在展开时显示为空。
我的代码有什么问题?
https://codesandbox.io/s/youthful-maxwell-rch1k?fontsize=14
上面是代码沙盒。我这里也有同样的问题
【问题讨论】:
-
您能否将 jsfidle 链接包含到您的问题中。调试代码很容易:)
-
我会真正快速地制作一个沙盒
-
我不确定为什么会这样,但如果您添加
exact,您的页面会在沙箱中呈现。 -
@DLowther 请写一个答案,这样我就可以给你积分。我将您的解决方案放在我的问题的答案中,但我想接受您的回答,因为我没有想到这一点
标签: reactjs react-router