Я новичок в react and redux
. Здесь я пытаюсь перенаправить пользователя на разные страницы на основе userType. Что у меня есть,
Мой файл main.js
class Main extends Component {
componentDidMount() {
this.props.isUserAuthenticated();
}
render() {
return (
<Router history={history}>
<div>
{this.props.isFetching && <Loading />}
<Switch>
<PrivateRoute exact path="/" component={LandingPage} />
<PrivateRoute exact path="/create-job" component={NewJob} />
<PrivateRoute exact path="/create-job/new" component={SelectCriteriaNewJob} />
<PrivateRoute exact path="/view-job" component={ViewJob} />
<PrivateRoute exact path="/resume-list/:jdId" component={ResumeList} />
<PrivateRoute exact path="/DashBoard" component={DashBoard} />
<Route exact path="/login" component={Login} />
<Route exact path="/*" component={NotFound} something="foo" />
</Switch>
</div>
</Router>
)
}
}
Теперь действие входа в систему есть. где я перенаправляю пользователя на одну страницу, где он решает, куда перенаправить пользователя на основе данных, которые я получил. В настоящее время не логика имени пользователя.
В действии входа в систему,
export function fetchToken(bodyjson) {
return (dispatch) => {
dispatch({
type: LOGIN_REQUEST
});
let url = LOGIN_PATH + "username=" + bodyjson.userName + "&password=" + bodyjson.password;
return post(url, bodyjson)
.then((response) => {
if (response.status === 200) {
localStorage.setItem('user', bodyjson.username);
localStorage.setItem('access_token', response.payload.access_token);
history.push('/');
dispatch({
type: LOGIN_SUCCESS,
data: response.payload,
})
}
else {
dispatch({
type: LOGIN_FAILED,
data: response.status,
});
}
})
}
}
Теперь в этом действии я перенаправляю пользователя на страницу /
, где компонент выглядит так:
render() {
if (this.state.isloading) {
return null;
}
else if (this.props.jobs) {
return <JobList />;
} else if (this.props.error) {
return <ErrorComponent />
}
else {
return <Redirect to="/create-job" />
}
}
}
Теперь, когда пользователь заходит в это время, я получил один токен, который является JWT
, этот токен содержит некоторую информацию. Итак, здесь я хочу перенаправить пользователя на страницу /Dashboard
, если тип пользователя - admin. Таким образом, могут быть разные роли, так что
Есть ли способ, которым я могу сделать это?
Спасибо.