использование PrivateRoute в React - PullRequest
0 голосов
/ 10 ноября 2018

В этом коде состояние authed становится true, когда пользователь входит в систему, но auth, используемое в privateRoute, не становится true в соответствии с приведенным ниже кодом.

checkauth() {
  this.setState({
    authed:true
  })
}

render() {
  function PrivateRoute ({component: Component, auth, ...rest}) {
    return (
      <Route
        {...rest}
        render={(props) => auth === true
              ? <Component {...props} />
              : <Redirect to={{pathname: '/', state: {from: props.location}}} />}
      />
    )
  }

  return (
    <div>
      <Router history={browserHistory}>
        <div>
          <Navbar/>
          <Switch>
            <Route path="/"   component={Firstpage} exact > </Route>
            <Route path="/signup"   component={Signup}> </Route>
            <Route path="/shop/:id" component={Shop}></Route>
            <Route path="/login"  render={(props) => <Login {...props} checkauth= 
{this.checkauth.bind(this)} />}> </Route>
            <PrivateRoute path='/newpath' component={Welcome} auth= 
{this.state.authed}/> 
          </Switch>
        </div>
      </Router>
    </div>
  );
}

Как я могу использовать состояния компонента App в функции PrivateRoute или есть другой способ сделать это?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...