Имеется компонент с push-уведомлением,
он должен возникать, если пользователь захочет погулять по приватным маршрутам и будет возвращён на главную посредством Redirect Как это реализовать? Я так понял, что через Redirect ничего передать нельзя.
Вот, если нужен компонент уведомления(PopupNotification.jsx)
PopupNotification
import React, {Component} from 'react';
import $ from 'jquery';
export default class PopupNotification extends Component{
componentDidMount(){
var notifyElement = $(".popup").addClass('active');
$('.popup').prepend(notifyElement);
setTimeout(function (ele) {
$(".popup").removeClass('active');
}, 3000, notifyElement);
}
render(){
return(
<div className="popup">
<i className="fa fa-exclamation-circle "></i>
<span className="popup_title">You must be logged in!</span>
</div>
)
}
}
Вот компонент приватного маршрута:
PrivateRoutes.jsx
import React from 'react';
import {Route, Redirect} from 'react-router-dom';
export default function PrivateRoute({user, component: Component, data, onLogout, ...rest}){
return(
<Route {...rest} render={
props=> (
user ?
<Component data={data} onLogout={onLogout}{...props} />
:
<Redirect to="/" />
)
} />
);
}
Вот, на всякий случай, пример такого приватного маршрута:
<PrivateRoute exact path="/videocourses" onLogout={this.logout} data={videoCoursesDB} user={this.state.user} component={VideoCourses}/>