Eth*_*ark 4 javascript ecmascript-6 reactjs redux
我在教程中遇到了这个问题:
const Todos = ({todos}) => (
<div>
<h1>Todos</h1>
{todos.map(todo => <p key={todo}>{todo}</p>)}
</div>
)
Run Code Online (Sandbox Code Playgroud)
为什么参数周围有括号?如果我自己写的话,第一行看起来像这样:
const Todos = (todos) => (...
Run Code Online (Sandbox Code Playgroud)
这是一些古怪的新ES6语法,我根本找不到记录?
这是参数对象解构的语法,它是作为ECMAScript 2015的一部分引入的.该Todos函数没有定义一个名为的参数todos,而是访问todos传入的对象的属性(并且立即被解构).
它大致相当于以下版本:
const Todos = (_param) => {
let todos = _param.todos;
return (
<div>
<h1>Todos</h1>
{todos.map(todo => <p key={todo}>{todo}</p>)}
</div>
);
};
Run Code Online (Sandbox Code Playgroud)
退房解构和参数处理有关解构更多信息.