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;