javascript - "(.....);"和 "{......}"在 react 中有什么区别?

标签 javascript reactjs object ecmascript-6

我收到以下代码的图像中显示的错误:

handlechange(event) {
    this.setState (prevState => {
      return(
      checked : !prevState.checked
    );});
}

但是当我将“返回”后的圆括号更改为 curl 时,它运行良好。我的意思是引擎盖下发生了什么?是什么导致错误消失?

handlechange(event) {
    this.setState (prevState => {
      return{
      checked : !prevState.checked
    }});
}

1

最佳答案

这不是 React 的事情。您的第一个示例只是无效的 JavaScript 语法。¹您的第二个示例是有效语法,返回通过对象初始值设定项创建的对象(通常称为对象“文字”,{checked: !prevState.checked}) .


¹ return 之后的 () 包裹了一个表达式,然后在表达式中你有 checked: !prevState.checked 看起来像带标签的声明。但是您不能在需要表达式的地方放置带标签的语句。


旁注:另一种写法是在参数列表中使用属性解构,在对象初始化器中使用简写属性:

handlechange(event) {
    this.setState(({checked}) => {
      checked = !checked;
      return {checked};
    });
}

关于javascript - "(.....);"和 "{......}"在 react 中有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53803952/

相关文章:

javascript - 发布 [object%20HTMLInputElement] 404 在 $.ajax 提交上找不到

javascript - react 中的`$(...).fullCalendar is not a function`

javascript - 尝试使用循环的结果并将其记录到控制台

javascript - 将联系表单信息存储到 JavaScript (ES6) 中的类中?

javascript - 从对象数组中删除最后一个对象。

javascript - 从 Sequelize 中的最小年龄和最大年龄列中查找年龄(来自数组(3,5,10))

Javascript 在可变时间前 10 分钟检测

javascript - 如何保护 React 应用程序中的 API key ?

javascript - 类型错误 : Cannot call a class as a function after deploying to Netlify?

javascript - 对导出为 React 组件的 SVG 使用随机颜色