javascript - 如何在反应中单击注销时重定向到登录页面
问题描述
对不起我的英语不好,英语不是我的第一语言。
嗨,我是反应 JS 的新手,在下面的代码中一切正常,但是当我单击注销处理程序时,它显示
“ × TypeError: 无法读取未定义的属性‘替换’”
您能否让我知道如何在单击注销处理程序时重定向到登录页面,
我尝试了所有可能性,例如:
this.props.history.push('somepath') this.context.history.push('somepath') 但对我没有任何帮助我研究了很多但没有找到实际答案。
import React,{Component} from 'react';
import {BrowserRouter,Link,Route} from 'react-router-dom';
import Contact from './contact';
class Home extends Component {
constructor(props) {
super(props)
}
logoutHandler =(e) => {
this.props.history.replace('/login')
}
render() {
return(
<BrowserRouter>
<div>
<header>
<Link to='/contact'>Contact</Link>
</header>
<div>
<Route path='/contact' Component={Contact}></Route>
</div>
<a href="#" onClick={e=>this.logoutHandler(e)}>Logout</a>
</div>
</BrowserRouter>
)
}
}
export default Home;`
解决方案
用于WithRouter
访问历史对象
import React,{Component} from 'react';
import { withRouter } from 'react-router'
import {BrowserRouter,Link,Route} from 'react-router-dom';
import Contact from './contact';
class Home extends Component {
constructor(props) {
super(props)
}
logoutHandler =(e) => {
this.props.history.push('/login')
}
render() {
return(
<BrowserRouter>
<div>
<header>
<Link to='/contact'>Contact</Link>
</header>
<div>
<Route path='/contact' Component={Contact}></Route>
</div>
<a href="#" onClick={e=>this.logoutHandler(e)}>Logout</a>
</div>
</BrowserRouter>
)
}
}
export default withRouter(Home);
推荐阅读
- java - 来自观察者的可变列表的 ConcurrentModificationException
- go - 如何在不使用 go-gorm (struct) 中的模型的情况下创建记录?我可以检索记录,但要创建它?
- python - 无法在 cmd 上运行 ipython
- json - 为什么 Jackson 为 @JsonSerializer/@JsonDeserializer 注释类创建每个 Serializer/Deserializer 实例
- javascript - 为什么我的 axios 并不总是在 React 中工作
- python - Pyrebase 未在 python 3.7.1 中成功安装
- bitcoin - 为什么coinbase的交易中有3个输出?
- racket - 在参数列表上调用“和”
- flutter - 如何在颤动中显示带有时区的日期和时间
- php - 如何在 VS Code 中为 Phalcon 启用 InteliSense?