我正在通过官方的redux教程。 http://redux.js.org/docs/basics/UsageWithReact.html
了解es6和jsx的反应
在文件
components/Link.js
有以下代码
import React, { PropTypes } from 'react'
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
}
export default Link
我很奇怪,为什么功能链接接受由大括号括起来的变量。其次,if语句块中的return语句具有span
jsx标签,但没有大括号,但其次,带有<a>
标记的if语句块外的return语句带有大括号。谁能解释为什么?
编辑:在从答案中找出解构赋值之后,我阅读下面的文章,了解如何在函数中使用它,它变得非常清晰。 https://simonsmith.io/destructuring-objects-as-function-parameters-in-es6/
这不完全正确。当您从对象中提取值作为函数参数时,这些值不是常量。 –
@AnthonyDugois问题的关键不在于它们是否是const或let,可以根据情况将var指定为let或const,意图是显示Destructing的工作方式,而不是内部值是常量与否。 –
@DiogoCunha谢谢你的回答。我认为这个链接很好地解释了解构赋值如何与函数一起工作。 https://simonsmith.io/destructuring-objects-as-function-parameters-in-es6/ 你认为你可以添加到你的答案。 –