using PrivateRoute in React
up vote
0
down vote
favorite
In this code, authed
state becomes true
when the user logs in, but auth
used in privateRoute
does not become true
according to the below code.
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>
);
}
How can I use the states of the App component in the PrivateRoute
function or is there any other method to do this?
reactjs react-router-v4
add a comment |
up vote
0
down vote
favorite
In this code, authed
state becomes true
when the user logs in, but auth
used in privateRoute
does not become true
according to the below code.
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>
);
}
How can I use the states of the App component in the PrivateRoute
function or is there any other method to do this?
reactjs react-router-v4
Please share yourcheckauth()
method.
– Levi Payne
Nov 10 at 14:09
Ok..I edited the code
– Sandz
Nov 10 at 14:11
I don't see anything that looks off here. Perhaps share yourLogin
component as well. Also, what debugging steps have you taken? How do you know thatauth
is not true?
– Levi Payne
Nov 10 at 14:29
Duplicate: stackoverflow.com/questions/53197248/…
– matt carlotta
Nov 10 at 23:21
add a comment |
up vote
0
down vote
favorite
up vote
0
down vote
favorite
In this code, authed
state becomes true
when the user logs in, but auth
used in privateRoute
does not become true
according to the below code.
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>
);
}
How can I use the states of the App component in the PrivateRoute
function or is there any other method to do this?
reactjs react-router-v4
In this code, authed
state becomes true
when the user logs in, but auth
used in privateRoute
does not become true
according to the below code.
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>
);
}
How can I use the states of the App component in the PrivateRoute
function or is there any other method to do this?
reactjs react-router-v4
reactjs react-router-v4
edited Nov 10 at 15:45
c-chavez
1,92821427
1,92821427
asked Nov 10 at 13:58
Sandz
45
45
Please share yourcheckauth()
method.
– Levi Payne
Nov 10 at 14:09
Ok..I edited the code
– Sandz
Nov 10 at 14:11
I don't see anything that looks off here. Perhaps share yourLogin
component as well. Also, what debugging steps have you taken? How do you know thatauth
is not true?
– Levi Payne
Nov 10 at 14:29
Duplicate: stackoverflow.com/questions/53197248/…
– matt carlotta
Nov 10 at 23:21
add a comment |
Please share yourcheckauth()
method.
– Levi Payne
Nov 10 at 14:09
Ok..I edited the code
– Sandz
Nov 10 at 14:11
I don't see anything that looks off here. Perhaps share yourLogin
component as well. Also, what debugging steps have you taken? How do you know thatauth
is not true?
– Levi Payne
Nov 10 at 14:29
Duplicate: stackoverflow.com/questions/53197248/…
– matt carlotta
Nov 10 at 23:21
Please share your
checkauth()
method.– Levi Payne
Nov 10 at 14:09
Please share your
checkauth()
method.– Levi Payne
Nov 10 at 14:09
Ok..I edited the code
– Sandz
Nov 10 at 14:11
Ok..I edited the code
– Sandz
Nov 10 at 14:11
I don't see anything that looks off here. Perhaps share your
Login
component as well. Also, what debugging steps have you taken? How do you know that auth
is not true?– Levi Payne
Nov 10 at 14:29
I don't see anything that looks off here. Perhaps share your
Login
component as well. Also, what debugging steps have you taken? How do you know that auth
is not true?– Levi Payne
Nov 10 at 14:29
Duplicate: stackoverflow.com/questions/53197248/…
– matt carlotta
Nov 10 at 23:21
Duplicate: stackoverflow.com/questions/53197248/…
– matt carlotta
Nov 10 at 23:21
add a comment |
active
oldest
votes
active
oldest
votes
active
oldest
votes
active
oldest
votes
active
oldest
votes
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53239696%2fusing-privateroute-in-react%23new-answer', 'question_page');
}
);
Post as a guest
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Please share your
checkauth()
method.– Levi Payne
Nov 10 at 14:09
Ok..I edited the code
– Sandz
Nov 10 at 14:11
I don't see anything that looks off here. Perhaps share your
Login
component as well. Also, what debugging steps have you taken? How do you know thatauth
is not true?– Levi Payne
Nov 10 at 14:29
Duplicate: stackoverflow.com/questions/53197248/…
– matt carlotta
Nov 10 at 23:21