当您使用自定义组件时,例如
<MyComponent>Hello World</MyComponent>
无论您在标签之间编写什么(在上面的例子中是 Hello World),都会作为children
prop.
所以当你写你的组件时
const Link = ({ active, children, onClick }) => {
你正在解构道具并只得到active
, children
and onClick
从传递给组件的 props
例如,考虑一下,您调用Link
类似组件
<Link active="true" onClick={someFunc} style={{color: 'orange'}}>Hello</Link>
然后在所有道具中,即active, onClick, style, children
,您只会访问active, onClick,children
在组件中。
对于你的第二个问题:
这是做什么的?
子级:PropTypes.node.isRequired,
So here PropTypes
是对传递给组件的 props 执行 typeCheck 的一种方法。它是从react-proptypes
包裹。
So
children: PropTypes.node.isRequired
制作道具children
被要求。所以如果你渲染你的组件像
<Link />
它不会通过类型检查,因此您需要这样做
<Link>Text</Link>