far*_*raz 3 javascript reactjs
我现在正在学习反应.这是与代码的链接 - http://redux.js.org/docs/basics/ExampleTodoList.html
我在理解这部分代码中发生的事情时遇到了一些困难
const Link = ({ active, children, onClick }) => {
if (active) {
return <span>{children}</span>
}
return (
<a
href="#"
onClick={e => {
e.preventDefault()
onClick()
}}
>
{children}
</a>
)
}
Link.propTypes = {
active: PropTypes.bool.isRequired,
children: PropTypes.node.isRequired,
onClick: PropTypes.func.isRequired
}
Run Code Online (Sandbox Code Playgroud)
我最难理解这个片段
return (
<a
href="#"
onClick={e => {
e.preventDefault()
onClick()
}}
>
{children}
</a>
)
}
Run Code Online (Sandbox Code Playgroud)
{children}在这里意味着什么?它有什么作用?
这有什么作用?
children: PropTypes.node.isRequired,
Run Code Online (Sandbox Code Playgroud)
上述行中的节点是什么意思?
Shu*_*tri 10
当您使用自定义组件时,如
<MyComponent>Hello World</MyComponent>
Run Code Online (Sandbox Code Playgroud)
无论你在标签之间写什么(在上面的例子中,Hello World)都作为children道具传递给组件.
所以在写你的组件时
const Link = ({ active, children, onClick }) => {
Run Code Online (Sandbox Code Playgroud)
你正在解构道具并只获得active,children并onClick从传递给组件的道具
例如,考虑将Link组件调用为
<Link active="true" onClick={someFunc} style={{color: 'orange'}}>Hello</Link>
Run Code Online (Sandbox Code Playgroud)
然后在所有道具中,即active, onClick, style, children,您将只active, onClick,children在组件中访问.
对于你的第二个问题:
这有什么作用?
children:PropTypes.node.isRequired,
所以这PropTypes是一种在传递给组件的道具上执行typeCheck的方法.它是从react-proptypes包中导入的.
所以
children: PropTypes.node.isRequired
Run Code Online (Sandbox Code Playgroud)
使道具children成为必需品.所以,如果你渲染你的组件就像
<Link />
Run Code Online (Sandbox Code Playgroud)
它不会通过类型检查,因此您需要这样做
<Link>Text</Link>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1535 次 |
| 最近记录: |