我找到了这段代码,并想解释一下初始化后为什么需要'= {}'的原因。 我能弄清楚的是 1)const使'props'对象成为const(不是它的内容) 2)诸如“ elementDimensions.width”之类的字段已初始化,但对象设置为= {},为什么需要这样做? 3)最后是'= props','props'可能会向此对象添加字段吗? 谢谢。
export default (props) => {
const {
elementDimensions: {
width = 0,
height = 0
} = {},
isActive = false,
isOutside = true,
point: {
x = 0,
y = 0
} = {}
} = props;
return (
<div>
{`x: ${x}`}<br />
....
答案 0 :(得分:1)
这是解构语法,不是简单的变量分配。从props
提取的变量是const
且不能重新分配的变量-即,名为width
,height
,isActive
,{ {1}},isOutside
和x
。 (这里没有对象初始化-y
已定义为函数的参数)
需要props
为= {}
提供默认值。没有它,如果elementDimensions
未定义,则width
和height
的解构将失败:
props.elementDimensions
const props = {};
const {
elementDimensions: {
width = 0,
height = 0
}
} = props;
只是一种更具破坏性的语法。例如
= props
从const { foo } = bar;
对象中提取foo
属性,并将其放入名为bar
的变量中。
类似于上面的foo
,代码中的= bar
从= props
对象中提取属性,并将它们放入变量名中。