react报错_结构赋值表达式应为声明或语句
最近学习JS和react遇到了这种问题,之前在前面直接写个const、var、let赋值都没问题,但是如果什么都不加就会报错,还是基础语法理解不够深入。
解决方案
用括号包裹语句
if (params !== undefined) {
// console.log(params)
({ id, title, content } = (params));
}
原因
在JavaScript中,当我们使用解构赋值语法时,如果解构赋值表达式(即赋值号左侧的部分)以一个对象字面量开头,JavaScript会将这个对象字面量解析为一个代码块而不是一个对象。这时,我们就需要使用括号来明确告诉JavaScript,这是一个对象而不是代码块。
当我们尝试将params对象中的属性解构到id、title和content变量时,赋值号左侧以一个对象字面量开头,因此我们需要使用括号将整个解构赋值表达式括起来,以明确告诉JavaScript这是一个对象解构赋值。
具体来说,在以下代码中:
({ id, title, content } = (params));
我们使用括号将整个解构赋值表达式括起来,以告诉JavaScript这是一个对象解构赋值表达式而不是一个代码块。这样,JavaScript就可以正确地将params对象中的属性解构到id、title和content变量中。
总之,当我们使用解构赋值语法时,如果解构赋值表达式以一个对象字面量开头,我们需要使用括号将整个解构赋值表达式括起来,以明确告诉JavaScript这是一个对象解构赋值表达式而不是一个代码块。