据我理解,这个
在声明一个无状态功能组件时,使用解构很方便,这样你就不必不断地输入
基于
我想做的事情可能吗?我在网上找不到任何例子,但如果有一种方法可以在不明确列出每个prop的情况下解构props对象,那将是很棒的!
编辑:请理解我知道如何正确地访问props对象中的属性。仔细阅读我的问题,我试图展开props对象中的所有属性,类似于显式声明它们的示例:
我希望您能像我使用
{...props}
和{prop1, prop2, prop3}
是一样的。在声明一个无状态功能组件时,使用解构很方便,这样你就不必不断地输入
props.prop1,props.prop2
等等。然而,当你需要传递给子组件10+个props时,事情会变得非常丑陋,因此我认为我可以使用展开运算符来解构我的props对象!基于
{...props}
本质上与{prop1, prop2, prop3}
相同的想法,我期望下面的代码能够工作,但是我收到了一个prop1未定义
的错误。const Component = ({...props}) => {
return (
<div>
{prop1}
</div>
)
}
我想做的事情可能吗?我在网上找不到任何例子,但如果有一种方法可以在不明确列出每个prop的情况下解构props对象,那将是很棒的!
编辑:请理解我知道如何正确地访问props对象中的属性。仔细阅读我的问题,我试图展开props对象中的所有属性,类似于显式声明它们的示例:
const Component = ({prop1, prop2, prop3}) => {
return (
<div>
{prop1}
</div>
)
}
我希望您能像我使用
{...props}
初始化组件一样使用它。
props
is actually an object, so you'd need to access it as such :props.prop1
- Mark C.{...props}
和{prop1, prop2, prop3}
是相同的东西" - 嗯,不是。如果你想要拆解成单独的变量,你需要明确地这样做。请写出你实际想表达的意思。 - Bergi{...props}
的意思是将传递的对象的所有剩余(“rest”)属性收集并分配到新对象中的props
变量中。因此,({...props}) => {}
基本上与props => {}
相同,所以你没有获得任何东西。如果你将{prop1, ...props}
写成这样,它就会有所不同。这将从传递的对象中提取prop1
并将其赋值给变量prop1
, 然后将prop2
和prop3
分配到一个新对象中并赋值给props
变量。 - Felix Klingwith
语句,就像在Destructuring an object without specifying its properties中所解释的那样,但是with
语句已经被弃用,在严格模式下不起作用,而ES6模块是严格模式。 - Felix Kling