react重定向问题?

初学者。。我在一个组件里重定向到另一个组件

 constructor(props: any) {
        super(props);
        this.props.history.push('/auth_manage')
    };

重定向是成功了,但是该组件剩下的函数(render())之类的都执行了,如何在这里直接跳出这个组件呢?

阅读 3.9k
3 个回答

其实这么写已经理解错误了react-router的思想,如果你想在匹配到某个路由后跳转到另一个路由,你应该用:

<Redirect from="原来的路由" to="指定的路由"/>

而不应该进到路由后才跳转, 如果你是进到路由后,需要判断满足某些条件,才进行跳转,而且必须进到这个页面,那么你需要在render中写这个东西或者DidMount中去写,因为初始化时,无法阻止执行render,你可以在render中这么写

render() {
    if (xxxx) {
        this.props.history.push('/auth_manage');
        return '';
    }
    return 'xxxxx';
}

直觉告诉我是 return;

一般整体大的解决方案使用路由
基本原理使用动态import
完整js包解决方案可以使用react-loadable,动态加载组建

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题