【发布时间】:2019-01-18 01:30:43
【问题描述】:
我正在学习 React.js。我熟悉下面的代码
class Login extends Component {
state = { email: '',};
render = () => {
return (//some JSX code);
}
}
但我得到以下代码作为问题的解决方案。
const PrivateRoute = ({ component: Component, ...rest }) => (
<Route
{...rest}
render={props =>
(Auth.isAuthenticated() ? ( <Component {...props} />) : (<Redirect to={{ pathname: '/',}}/>))
}
/>
);
我无法理解上面的代码。谁能帮我理解一下?
这里的{...rest} 是什么?
我知道传播运算符。为什么我在这里传递它 ({ component: Component, ...rest }) 和这里 <Route {...rest} ?它在这两个地方做什么?
为什么render() 看起来像render={props => }?
谢谢大家。
【问题讨论】:
-
{...rest}被称为spread syntax。当您编写render={props => ... }时,您正在为render属性提供一个函数。如果你写render={(props) => { return ... }},一开始它可能看起来更明显
标签: reactjs react-router-v4 react-component react-router-component