Javascript 反应+;Redux状态更改时路由器重定向的最佳实践
我正在使用react路由器dom,并尝试将其与redux绑定。我想在行动中重定向,但不知道,最好的方法是什么。我需要使用history.push()还是其他什么?也许react对此有自己的方法 我的组件容器代码:Javascript 反应+;Redux状态更改时路由器重定向的最佳实践,javascript,reactjs,redux,react-redux,react-router,Javascript,Reactjs,Redux,React Redux,React Router,我正在使用react路由器dom,并尝试将其与redux绑定。我想在行动中重定向,但不知道,最好的方法是什么。我需要使用history.push()还是其他什么?也许react对此有自己的方法 我的组件容器代码: class ConnectedAppContent extends React.Component { render() { return ( <div id="content"> <Ro
class ConnectedAppContent extends React.Component {
render() {
return (
<div id="content">
<Router>
<Switch>
<PropsRoute path="/login" component={LoginForm} doLogin={this.props.doLogin} />
<PrivateRoute path="/scan" redirectTo="/login" component={Scanner} token={this.props.token} />
<PrivateRoute path="/result" redirectTo="/login" component={ParsedQRCode} token={this.props.token} />
</Switch>
</Router>
</div>
);
}
}
const mapStateToProps = state => {
return {
token: state.token,
parsedQRCode: state.parsedQRCode
}
}
const mapDispatchToProps = dispatch => ({
doLogin: token => dispatch(doLogin(token))
});
export const AppContent = connect(mapStateToProps, mapDispatchToProps)(ConnectedAppContent);
class ConnectedAppContent扩展了React.Component{
render(){
返回(
);
}
}
常量mapStateToProps=状态=>{
返回{
令牌:state.token,
parsedQRCode:state.parsedQRCode
}
}
const mapDispatchToProps=调度=>({
doLogin:token=>dispatch(doLogin(token))
});
export const AppContent=connect(mapStateToProps,mapDispatchToProps)(ConnectedAppContent);
除了history.push()之外,我不知道还有其他方法
const stateChange = () => {
this.props.doLogin();
this.props.history.push("/routetoredirect")
}
除了history.push()之外,我不知道还有其他方法
const stateChange = () => {
this.props.doLogin();
this.props.history.push("/routetoredirect")
}
如果您想在按钮单击或提交时路由到某个事件上的特定路径,可以使用react router dom提供的重定向或链接 此外,react router可与redux配合使用,但在某些情况下,它不能与redux配合使用,您可以使用withRouter包装您的组件,然后您可以通过以下方式轻松推送路由:
history.push('/your-route')
如果您想在按钮单击或提交时路由到某个事件上的特定路径,可以使用react router dom提供的重定向或链接 此外,react router可与redux配合使用,但在某些情况下,它不能与redux配合使用,您可以使用withRouter包装您的组件,然后您可以通过以下方式轻松推送路由:
history.push('/your-route')
我会的
import {Redirect} from 'react-router-dom';
在渲染方法中,您可以:
render() {
if (yourRedirectState) {
return <Redirect to='/route'/>;
}
}
render(){
如果(你的州){
回来
}
}
我会的
import {Redirect} from 'react-router-dom';
在渲染方法中,您可以:
render() {
if (yourRedirectState) {
return <Redirect to='/route'/>;
}
}
render(){
如果(你的州){
回来
}
}