【问题标题】:braces around params -- why? [duplicate]括号周围的参数 - 为什么? [复制]
【发布时间】:2016-04-21 16:22:00
【问题描述】:

我在教程中遇到过这个:

const Todos = ({todos}) => (
  <div>
    <h1>Todos</h1>
    {todos.map(todo => <p key={todo}>{todo}</p>)}
  </div>
)

为什么参数周围有大括号?如果我自己写,第一行应该是这样的:

const Todos = (todos) => (...

这是我根本找不到文档的一些古怪的新 ES6 语法吗?

【问题讨论】:

标签: javascript reactjs ecmascript-6 redux


【解决方案1】:

这是 parameter object destructuring 的语法,它是作为 ECMAScript 2015 的一部分引入的。Todos 函数没有定义名为 todos 的单个参数,而是访问 @ 987654324@ 传入的对象的属性(并立即解构)。

大致相当于以下版本:

const Todos = (_param) => {
  let todos = _param.todos;
  return (
    <div>
      <h1>Todos</h1>
      {todos.map(todo => <p key={todo}>{todo}</p>)}
    </div>
  );
};

查看Destructuring and parameter handling 了解有关解构的更多信息。

【讨论】:

  • 非常感谢您的出色回答和链接!我肯定会阅读更多 2ality :)
  • 你应该。 ;) 如果此答案有助于解决您的问题,请接受它作为您问题的正确答案!
猜你喜欢
  • 2015-11-01
  • 2018-06-24
  • 2016-06-04
  • 1970-01-01
  • 2015-08-27
  • 1970-01-01
  • 2021-12-13
  • 1970-01-01
  • 2014-03-06
相关资源
最近更新 更多