Как перенаправить маршрут на другой путь в подключенном к react-redux компоненте

#javascript #reactjs #redux

#javascript #reactjs #redux

Вопрос:

я не хочу выполнять условную маршрутизацию в своем компоненте. Я использую react-redux. Я пробовал разные вещи, такие как, но получаю неопределенную ошибку.

 this.props.history.push('/pathname')
  

итак, чего я не хочу делать, при монтировании компонента я проверяю некоторое логическое значение из моего состояния redux, если это значение вернет false, я хочу перенаправить пользователя на другой маршрут.

мой компонент:

 import React, {Component} from 'react'
import { connect } from 'react-redux';
import { bindActionCreators } from 'redux'

class SomeComponent extends Component {
componentWillMount() {
        this.props.someFunc()
        if ( this.props.userLogin[0].isUserLogin === false ) {
            /// here i want to redirect to another route 
        } 
    }
render() {
   return(
     <div>Some Content</div>
   )
  }
}

const mapStateToProps = state => ({
    userLogin: state.UserLogin,
  })

  function mapDispatchToProps(dispatch) {
    return {
      someFunc: bindActionCreators(someAction, dispatch)
    }
  } 

  export default connect(mapStateToProps, mapDispatchToProps)(SomeComponent)
  

Как и в примере, я хочу перенаправить в компоненте, который смонтирует пользователя на другой путь. Как я могу это сделать?

Комментарии:

1. Используете ли вы react-router-dom для управления состоянием истории?

Ответ №1:

Вам нужно перенаправление

 import {Redirect} from 'react-router-dom';

{boolFlag amp;amp; <Redirect  to="/hello" />}  // put this in render
  

Комментарии:

1. это как? {this.props.UserLogin[0].isUserLogin === false amp;amp; <Перенаправить на=»/hello» />}

Ответ №2:

Вы имеете в виду «история не определена»? Вы можете получить историю из родительского компонента