2 回答
TA贡献1846条经验 获得超7个赞
我们主要是由于用户登录或注销而重定向用户。例如,这是基本的requireAuth HOC组件,用于检查用户是否已登录并将其重定向到另一个地方。
import React, { Component } from 'react';
import { connect } from 'react-redux';
export default ChildComponent => {
class ComposedComponent extends Component {
componentDidMount() {
this.shouldNavigateAway();
}
componentDidUpdate() {
this.shouldNavigateAway();
}
shouldNavigateAway() {
if (!this.props.auth) {
this.props.history.push('/');
}
}
render() {
return <ChildComponent {...this.props} />;
}
}
function mapStateToProps(state) {
return { auth: state.auth.authenticated };
}
return connect(mapStateToProps)(ComposedComponent);
};
有两个位置可以检查用户是否已登录
首次安装该组件时-在componentDidMount()中
当用户尝试登录,登录或注销时,登录componentDidUpdate()
同样在您的代码示例中,history.push在动作创建器中。动作创建者属于redux方面。保持redux和反应分开。
添加回答
举报