我试图直接以参数形式对值进行解构,并使用通用对象影响默认值(对于每个被解构的子属性:
示例
const initialTest = {
name: 'myName',
surname: 'mySurname',
age: 100,
};
const MyComponent = ({
test: { name, surname, age } = initialTest,
}) => { ... }
<MyComponent test={{ name: 'myNameFromProps' }} />
我最后的愿望是具有3个常量name
,surname
和age
,如果定义了它们,则它们的值来自props
(函数的参数),如果没有,则来自initialTest
的值。
使用此代码,如果未在组件的prop中定义test
,它将使用initialTest,但是如果仅使用上述示例的name
prop来定义test,我将得到:
name = 'myNameFromProps'
surname undefined
age undefined
而且我想要:
name = 'myNameFromProps'
surname = 'mySurname'
age = 100
对于我,我可以用:
const MyComponent = ({
test: { name = initialTest.name, surname = initialTest.surname, age = initialTest.age },
}) => { ... }
但是那绝对不好笑...
我尝试使用括号test: ({ name, surname, age } = initialTest),
,但没有用,埃斯林特说我是个愚蠢的开发者,他对xD是对的
[如果您有任何建议/想法/解决方案,我很乐意阅读。谢谢大家!
除非您实际上在其他地方使用initialTest
,否则可以将其删除并在test
的解构内列出默认值:
const MyComponent = ({
test: { name: 'myName', surname: 'mySurname', age: 100 } = {},
}) => { ... }
如果= {}
属性中没有任何内容,请确保在末尾有test
。