我希望我的父组件App.js
路由到'/home'
如果孩子组件LoginApp
有回一个响应。 (所有的校验发生的是服务器端,因此响应将仅当认证成功复出)。
// Child Component
const LoginApp = () => {
const signupWasClickedCallback = (data) => {
console.log(data);
// ----- Adding Favourites
axios.post('/api/account/signup', data)
.then(function (res) {
console.log(res);
})
.catch(function (err) {
console.log(err);
});
};
const loginWasClickedCallback = (data) => {
console.log(data);
axios.post('/api/account/signin', data)
.then(function (res) {
console.log(res);
})
.catch(function (err) {
console.log(err);
});
};
return (
<div className="loginWrapper">
<ReactSignupLoginComponent
title="Welcome to KidKlub!"
handleSignup={signupWasClickedCallback}
handleLogin={loginWasClickedCallback}
/>
</div>
);
};
export default LoginApp;
// Parent Component
class App extends Component {
render() {
return (
<Router>
<div>
<Route exact path="/" component={LoginApp} />
<Route exact path="/home" component={Home} />
</div>
</Router>
);
}
}
export default App;
你可以这样做的:
.then(function (res) {
console.log(res);
props.history.push('/home');
})
.catch(function (err) {
console.log(err);
props.history.push('/');
});
从反应路由器-DOM使用withRouter
import { withRouter } from 'react-router-dom';
包你withRouter组件
export default withRouter(LoginApp);