В React 16 и более поздних версиях вы можете использовать перенаправление из'act-router-dom '. В вашем случае вы получите те же результаты, если будете использовать перенаправление вместо истории.
import { Redirect } from 'react-router-dom'
Определение состояния в вашем компоненте
this.state = {
loginStatus:true
}
чем в вашем методе рендеринга
render () {
if(this.state.loginStatus){
return <Redirect to='/home' />
}
return(
<div> Please Login </div>
)
}
Редактировать: используя this.props.history
Есть две вещи, которые я нашел отсутствующими в вашем коде. Одним из них является ваш метод входа
связывание. Свяжите свой метод, чтобы вы могли получить доступ к this
класса.
Другие вещи использовать withRouter
HOC. withRouter
даст вам
доступ к этой истории. Как и так ниже.
import React from "react";
import { withRouter } from "react-router";
class MainClass extends Component {
constructor(props) {
this.login = this.login.bind(this)
}
logIn(){
this.props.history.push('/new-location')
}
render(){
return (
<div className="loginWrapper">
<button onClick={this.logIn} className="btn btn-
primary">Pieteikties</button>
</div>
)
}
export default withRouter(MainClass);