代码如下,在ProtectedRoute函数return的Route中 {...rest}
应该不包括 path
,但是还是能正常跳转,这是为什么
<ProtectedRoute path="/movies/:id" component={MovieForm} />
const ProtectedRoute = ({ path, component: Component, render, ...rest }) => {
console.log("rest: ", { ...rest });
return (
<Route
// path={path}
{...rest}
render={(props) => {
console.log(props);
if (!auth.getCutterntUser()) return <Redirect to="/login" />;
return Component ? <Component {...props} /> : render(props);
}}
/>
);
};
<Switch>
<Route path="/register" component={RegisterForm}></Route>
<Route path="/login" component={LoginForm}></Route>
<Route path="/logout" component={Logout}></Route>
<Route path="/movies/1" render={() => <h1>test</h1>} />
<ProtectedRoute path="/movies/:id" component={MovieForm} />
<Route
path="/movies"
render={(props) => <Movies {...props} user={this.state.user} />}
></Route>
<Route path="/customers" component={Customers}></Route>
<Route path="/rentals" component={Rentals}></Route>
<Route path="/not-found" component={NotFound}></Route>
<Redirect from="/" exact to="/movies" />
<Redirect to="/not-found" />
</Switch>