import React from 'react';
import { Router, Route, Switch} from 'react-router';
// import { BrowserRouter as Router,Route, Switch} from 'react-router-dom';
import {createBrowserHistory} from 'history'
import Header from '../components/Header.js';
import Dashboard from '../components/DashboardPage.js'
import CreateExpense from '../components/CreateExpensePage.js';
import EditExpense from '../components/EditExpensePage.js';
import Help from '../components/HelpPage.js';
import PageNotFound from '../components/PageNotFound.js'
import LoginPage from '../components/LoginPage.js'
export const history = createBrowserHistory();
const AppRouter = ()=>(
<Router history={history}>
<div>
<Header/>
<Switch>
<Route path='/' exact={true} component={LoginPage}/>
<Route path='/dashboard' component={Dashboard}/>
<Route path='/create' component={CreateExpense} />
<Route path="/edit/:id" component={EditExpense}/>
<Route path='/help' component={Help} />
<Route component={PageNotFound}/>
</Switch>
</div>
</Router>
)
export default AppRouter;
import React from 'react';
import {NavLink, Link} from 'react-router-dom';
import {connect} from 'react-redux';
import {LogoutAction} from '../Redux/Actions/AuthActions.js'
export const Header = ({logoutAction})=>(
<header>
<h1>Expense Tracker</h1>
<p><NavLink exact activeClassName='active-class' to='/'>Home Page</NavLink></p>
<p><NavLink activeClassName='active-class' to='/create'>Add Expense</NavLink></p>
<p><NavLink activeClassName='active-class' to='/help'>Help Page</NavLink></p>
<button onClick={logoutAction}>Logout</button>
</header>
);
const mapDispatchToProps = (dispatch)=> {
return {
logoutAction: ()=> dispatch(LogoutAction())
}
}
export default connect(undefined,mapDispatchToProps) (Header);
单击任何NavLink或Link后,它总是打开PageNotFound组件。
我刚刚发现了我的问题,也可能是你的问题。
我在react-router-dom@5.2.0
和history@5.0.0
上。
react-router 5x与历史4x兼容。一旦我降级到history@4.10.1
,一切都开始工作了。
问题内容: 我正在从本教程中学习,但始终收到此错误: “ react-router”不包含名为“ browserHistory”的导出。 具有react-router的文件是这样的: 问题答案: 您现在需要从历史记录模块中获取。 请注意,他们最近更改了模块API,因此,如果您使用的是最新版本,则导入会稍有变化:
在我的项目中,我使用React路由器DOM 5.2.0。我必须使用
似乎有一些关于使用什么的混淆:
我在从React路由器v3迁移到v4时遇到了一些小问题。在v3中,我可以在任何地方执行此操作: 如何在v4中实现这一点。 我知道,当您在组件中时,我可以使用hoc、react context或event router道具。但我不是这样。 我正在寻找v4中组件的外部导航的等价性
问题内容: 我一直在跟踪Tyler Mcginnis的教程,并用React Router遇到了麻烦,尤其是历史记录。我最终逐字复制了他的代码只是为了看看是否只有我一个人,但我仍然 实现是: 我注意到的是模块中不存在,而是模块内部。遵循找到的API文档,我认为必须通过以下位置调用它: 这样做会产生错误。删除括号,会导致与上述历史记录相同的错误。 当我记录历史记录时,绝对是不确定的,这使我相信问题与i
我有一个使用React,React路由器Dom(RRD),Redux和Typecript的项目。默认情况下,RRD将和道具传递给我在路由组件道具中定义的子组件(见下文)。在我的组件中,Redux还向我的组件添加了两个道具,一个函数(getPlaylist)和一个对象(auth)。 在我的组件中,当我输入所有道具时,我在输入和时遇到问题。 我尝试了以下方法,但没有成功: 添加了自定义道具的Route