You’re going to want to use the Redirect
component. There’s a few different approaches to this problem. Here’s one I like, have a PrivateRoute component that takes in an authed
prop and then renders based on that props.
function PrivateRoute ({component: Component, authed, ...rest}) { return ( <Route {...rest} render={(props) => authed === true ? <Component {...props} /> : <Redirect to={{pathname: '/login', state: {from: props.location}}} />} /> ) }
Now your Route
s can look something like this
<Route path='/' exact component={Home} /> <Route path='/login' component={Login} /> <Route path='/register' component={Register} /> <PrivateRoute authed={this.state.authed} path='/dashboard' component={Dashboard} />
If you’re still confused, I wrote this post that may help – Protected routes and authentication with React Router v4
Related Posts:
- onEnter not called in React-Router
- How to use Redirect in the new react-router-dom of Reactjs
- You should not use Route or withRouter() outside a Router when using react-router 4 and styled-component in react
- React-Router only one child
- How to refresh a Page using react-route Link
- react router v^4.0.0 Uncaught TypeError: Cannot read property ‘location’ of undefined
- Cannot read property ‘getHostNode’ of null
- React-Router : What is the purpose of IndexRoute?
- React router not showing browser history
- React, Uncaught ReferenceError: ReactDOM is not defined
- Getting “Cannot call a class as a function” in my React Project
- Invariant Violation: Objects are not valid as a React child
- Invariant Violation: Objects are not valid as a React child
- “SyntaxError: Unexpected token < in JSON at position 0"
- React.js: Set innerHTML vs dangerouslySetInnerHTML
- React – uncaught TypeError: Cannot read property ‘setState’ of undefined
- Understanding unique keys for array children in React.js
- How to do a redirect to another route with react-router?
- Jest spy on functionality
- Difference between npx and npm?
- Reactjs – Form input validation
- TypeScript React.FC
confusion - Error Running React Native App From Terminal (iOS)
- Axios Delete request with body and headers?
- Loop inside React JSX
- Can’t resolve module (not found) in React.js
- How to implement navbar using react
- Loop inside React JSX
- how to render a react component using ReactDOM Render
- React this.setState is not a function
- Console logging for react?
- Parse Error: Adjacent JSX elements must be wrapped in an enclosing tag
- ‘react-scripts’ is not recognized as an internal or external command
- After $npm install, Getting Error: Cannot find module ‘../lib/utils/unsupported.js’
- React Native: this.setState is not a function
- In reactJS, how to copy text to clipboard?
- SyntaxError: Adjacent JSX elements must be wrapped in an enclosing tag
- What does the className attribute mean in JSX?
- What is prevState in ReactJS? [duplicate]
- React with ES7: Uncaught TypeError: Cannot read property ‘state’ of undefined
- React Hook Warnings for async function in useEffect: useEffect function must return a cleanup function or nothing
- Setting a backgroundImage With React Inline Styles
- React – TypeError: Cannot read property ‘props’ of undefined
- What is the difference between state and props in React?
- How to pass props to {this.props.children}
- React eslint error missing in props validation
- OnChange event using React JS for drop down
- ESLint Parsing error: Unexpected token
- React Context vs React Redux, when should I use each one?
- How to import image (.svg, .png ) in a React Component
- Uncaught TypeError: Cannot read property ‘props’ of null
- React Error: Target Container is not a DOM Element
- React Js: Uncaught (in promise) SyntaxError: Unexpected token < in JSON at position 0
- Console is throwing Unterminated JSX contents error
- How to scroll to an element?
- How to handle the `onKeyPress` event in ReactJS?
- setInterval in a React app
- How do you Hover in ReactJS? – onMouseLeave not registered during fast hover over
- Failed to compile. Module not found: Can’t resolve ‘react-router-dom’
- ReactJS: setTimeout() not working?
- What does “export default” do in JSX?
- How to add multiple classes to a ReactJS Component?
- Uncaught Invariant Violation: Too many re-renders. React limits the number of renders to prevent an infinite loop
- Warning: findDOMNode is deprecated in StrictMode. findDOMNode was passed an instance of Transition which is inside StrictMode
- Warning: findDOMNode is deprecated in StrictMode. findDOMNode was passed an instance of Transition which is inside StrictMode
- React.js – Can’t read property of undefined
- module.exports “Module is not defined”
- how to download file in react js
- Trying to use fetch and pass in mode: no-cors
- React’s setState method with prevState argument
- Pass react component as props
- Uncaught TypeError: Cannot read property ‘call’ of undefined at __webpack_require__
- How to clear react-native cache?
- Async/await in componentDidMount to load in correct order
- Why use Redux over Facebook Flux?
- Local package.json exists, but node_modules missing
- Access Control Origin Header error using Axios
- Can’t perform a React state update on an unmounted component
- how to use react require syntax?
- onClick not working React js
- This.props.dispatch not a function – React-Redux
- How to add a keyboard listener to my onClick handler?
- How to add a keyboard listener to my onClick handler?
- Uncaught Invariant Violation: Rendered more hooks than during the previous render
- command not found: jest
- Jest encountered an unexpected token
- ReactJS – .JS vs .JSX
- ReactJS: Maximum update depth exceeded error
- How to allow CORS in react.js?
- Invariant Violation: _registerComponent(…): Target container is not a DOM element
- Uncaught ReferenceError: React is not defined
- What do these three dots in React do?
- Expected ‘this’ to be used by class method
- What does “export default” do in JSX?
- Update style of a component onScroll in React.js
- where is create-react-app webpack config and files?
- Correct modification of state arrays in React.js
- JSX not allowed in files with extension ‘ .js’ with eslint-config-airbnb
- “React.Children.only expected to receive a single React element child” error when putting
and in a - Await is a reserved word error inside async function