#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:
Вы имеете в виду «история не определена»? Вы можете получить историю из родительского компонента