2016-01-15 156 views
4

我碰到這在教程跑了?如果我寫我自己,第一行是這樣的:左右括號 - 爲什麼?</p> <pre><code>const Todos = ({todos}) => ( <div> <h1>Todos</h1> {todos.map(todo => <p key={todo}>{todo}</p>)} </div> ) </code></pre> <p>爲什麼參數周圍有括號:

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

這是我根本找不到記錄了一些古怪的新ES6語法?

+0

[Es2015中的捲曲制動裝置]的可能副本(http://stackoverflow.com/q/35190064/1048572) – Bergi

回答

8

這是爲參數對象解構的語法,其被引入作爲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> 
); 
}; 

退房Destructuring and parameter handling關於解構的更多信息。

+0

非常感謝您的出色答案和鏈接!我一定會閱讀更多2ality :) –

+0

你應該。 ;)如果這個答案有助於解決你的問題,請接受它作爲你的問題的正確答案! –

相關問題