0

I have the following code snippet

const [redirectToRoute, setRedirectToRoute] = useState( false );
const { state  }  = useLocation();

 if( redirectToRoute ){
      return <Redirect to={ state?.from }/>
 }

This is part of an Application that uses React-Router. I Do understand what this code does. However, I have a question about the use of "?." syntax. What is "?.". Is it something to do with "conditional properties" or something else?

if you use console.log( state.from ), there is an error × TypeError: Cannot read properties of undefined (reading 'from')

But No Error for console.log( state?.from )

if it helps, below is the code of the protected router I used in my application. Note, the state: { from: location } part. This is where <Redirect to={ state?.from }/> gets its values.

export default function PrivateRoute({ children, ...rest }) {

    return (
      <Route
        {...rest}
        render={({ location }) =>
           fakeAuth.isAuthenticated ? (
            children
          ) : (
            <Redirect
              to={{
                pathname: "/",
                state: { from: location }
              }}
            />
          )
        }
      />
    );
  }

0 Answers0