react报错_结构赋值表达式应为声明或语句

478 阅读1分钟

react报错_结构赋值表达式应为声明或语句

image-20230415153634004

最近学习JS和react遇到了这种问题,之前在前面直接写个const、var、let赋值都没问题,但是如果什么都不加就会报错,还是基础语法理解不够深入。

解决方案

用括号包裹语句

if (params !== undefined) {
        // console.log(params)
        ({ id, title, content } = (params));
    }

原因

在JavaScript中,当我们使用解构赋值语法时,如果解构赋值表达式(即赋值号左侧的部分)以一个对象字面量开头,JavaScript会将这个对象字面量解析为一个代码块而不是一个对象。这时,我们就需要使用括号来明确告诉JavaScript,这是一个对象而不是代码块。

当我们尝试将params对象中的属性解构到idtitlecontent变量时,赋值号左侧以一个对象字面量开头,因此我们需要使用括号将整个解构赋值表达式括起来,以明确告诉JavaScript这是一个对象解构赋值。

具体来说,在以下代码中:

({ id, title, content } = (params));

我们使用括号将整个解构赋值表达式括起来,以告诉JavaScript这是一个对象解构赋值表达式而不是一个代码块。这样,JavaScript就可以正确地将params对象中的属性解构到idtitlecontent变量中。

总之,当我们使用解构赋值语法时,如果解构赋值表达式以一个对象字面量开头,我们需要使用括号将整个解构赋值表达式括起来,以明确告诉JavaScript这是一个对象解构赋值表达式而不是一个代码块。