【发布时间】:2019-02-11 23:16:58
【问题描述】:
您好,我已经构建了一个 ProtectedRoute 组件,我希望将它包含在我的 App 组件中。虽然我看到它适用于许多其他人,但我不确定为什么我是个奇怪的人。代码如下:
const PrivateRoute = ({ component: Component, path, ...rest }) => {
return (<Route {...rest} render={(props) => (
firebaseApp.auth().onAuthStateChanged(user => {
if (user) {
<Component {...props} />;
} else {
<Redirect
to={{
pathname: "/",
state: {
prevLocation: path,
error: "You need to login first!",
},
}}
/>
}
})
)} />
)
}
class App extends Component {
displayName = App.name
constructor(props) {
super(props);
}
render() {
return (
<Layout>
<Route exact path='/' component={Home} />
<Route path='/signin' component={SignIn} />
<Route path='/signup' component={SignUp} />
<PrivateRoute path='/counter' component={Counter} />
<Route path='/fetchdata' component={FetchData} />
</Layout>
);
}
}
export default App;
【问题讨论】:
标签: reactjs react-router higher-order-components