使用react和react-router 4我想從登錄視圖發送用戶登錄後,另一個視圖。我見過其他一些問題,但是沒有任何解決方案,包括使用歷史或上下文爲我工作。反應路由器4 - 編程導航到新視圖難
const {
Redirect,
HashRouter,
Switch,
Route,
Link
} = ReactRouterDOM
const App =() => {
const loginToServer =() => {
// how do I redirect user to the home route?
};
return (
<div className="App">
<h2>Some App</h2>
<HashRouter>
<div>
<Link to="/login" exact activeClassName="active">Login </Link><br/>
<Link to="/home" activeClassName="active">Home </Link><br/>
<hr/>
<Switch>
<Route path="/login"
render={() => <Login loginToServer = { loginToServer } /> }/>
<Route path="/home" component={HomeComponent} />
<Route exact path="/" render={() => (<Redirect to="/login"/>)}/>
</Switch>
</div>
</HashRouter>
</div>
);
};
const Login = (props) => {
return (
<div>
<h4>Login Page</h4>
<p>(pretend button is a submit button for a successful login)</p>
<button onClick= { props.loginToServer }> login </button>
</div>
)}
const HomeComponent =() => <h4>Home page</h4>
ReactDOM.render(<App />, document.getElementById('root'));
上述代碼在codepen here中。希望有人能告訴我實現這個最簡單的方法。謝謝。
我編輯我的答案給你,因爲在現實生活中應用的替代品,你會從比你的根'App' – Freez