privateRoute получает реквизиты, переданные из app.js, но не может отобразить переданный компонент. Почему это так? - PullRequest
0 голосов
/ 10 мая 2019

Пожалуйста, смотрите мой 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;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...