Пожалуйста, смотрите мой app.js и privateroute ниже: у меня есть browserrouter, оборачивающий мой в index.js. Я получаю реквизиты, и я получаю changePass из Redux, который я передаю в мой «маршрут смены пароля». Я также могу зарегистрировать «аутентифицированный» реквизит в моем частном компоненте маршрута, как показано ниже в console.log.
Но на этом все и заканчивается. Даже когда changePass === 'changePass', маршрут не работает. Что может быть не так? Я просмотрел Google, но не могу найти решение.
вместо использования частного маршрута я просто помещаю компонент changePass в простой маршрут в моем app.js, и он отлично работает, когда я перехожу к / changePass. Но как только я помещаю его в приватный маршрут, он перестает работать ...
class App extends Component {
render() {
return (
<Switch>
<div>
<Route path="/" exact component={Authentication} />
<PasswordChangeRoute
authenticated={this.props.changePass}
path="/changePass"
component={ChangePass}
/>
</div>
</Switch>
);
}
}
import React from 'react';
import {Route,Redirect} from 'react-router-dom';
const PasswordChangeRoute=({ component: Component, authenticated, ...rest })=> {
console.log(authenticated);
return (
<Route
{...rest}
render={(props) => authenticated==="changePass" ?(
<Component {...props} /> ):(<Redirect to={{ pathname: '/login', state: { from: props.location } }} />)
}
/>
)
};
export default PasswordChangeRoute;