Почему я не могу получить доступ к реквизитам в дочернем компоненте, переданном от родительского? - PullRequest
0 голосов
/ 19 сентября 2019

user, user properties, isUserAuthenticated и isUserView работают просто отлично, но не тогда, когда я пытаюсь передать user.id в подпорку поиска PrivateRoute.Проблема не в частном маршруте, потому что, если я вручную пытаюсь передать данные в поисковую систему, это работает.Я очень ценю любую помощь, которую могу получить.:) Заранее спасибо.

class App extends React.Component {
  constructor(props){
    super(props);
    this.state = {
      isUserAuthenticated: 'false', 
      user: {}
    }; 
  }

  //gets the user status from the api.
  componentDidMount() {
      axios.get('/api/login-status')
        .then(response=> {
          //console.log(response);
          if(response.data.logged_in && this.state.isUserAuthenticated === 'false') {
            this.setState({
              isUserAuthenticated: 'true',
              user: response.data.user  
            })  
          } else if(!response.data.logged_in && this.state.isUserAuthenticated === 'true') {
            this.setState({
              isUserAuthenticated: '',
              user: {}
            })
          }
        }).catch(error=>{
          //log.errors
        })
    }

render() {
    let {user, isUserAuthenticated} = this.state;
    return (
      <UserProvider user={user}> {/*Passes the user object here*/}
       <div className="app container-fluid">
          <BrowserRouter>
            <Nav isUserAuthenticated={isUserAuthenticated}/> {/*Ok here two*/}

            {user.id /*renders just fine on the component*/} 

            <PrivateRoute path="/someLink" component={SomeComponent} 
              isUserAuthenticated={isUserAuthenticated} 
              search={user.id}{/*renders undefined*/} isUserView={true}{/*This works*/}/>

            <Footer />
          </BrowserRouter>
        </div>
      </UserProvider>
    )
  }
}

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