你在尋找es6命名參數的語法(這只是解構)?
const ChildComponent = ({ propName }) => (
<div>
<h1>Child Component</h1>
</div>
)
const ChildComponent = (props) => (// withoud named, arguments
<div>
<h1>Child Component</h1>
</div>
)
Optionnally有第二個參數給你的函數取決於你是否指定了背景您的組件或不是。
也許它會更有幫助的一個鏈接到docs。如第一篇文章中所述功能組件。無論傳遞給組件的道具是作爲第一個參數傳遞給您的功能組件的對象來表示的。
進一步說一下,關於jsx中的傳播符號。
當你在組件中寫:
<Child prop1={value1} prop2={value2} />
你的組件將獲得是一個普拉伊物體看起來像這樣:
{ prop1: value1, prop2: value2 }
(請注意,這不是一個地圖,但與對象只有字符串作爲鍵)。
因此,當你使用傳播語法與JS對象時,它實際上是一個快捷方式到這個
const object = { key1: value1, key2: value2 }
<Component {...object}/>
是相當於
<Component key1={value1} key2={value2} />
而實際上編譯成
return React.createElement(Component, object); // second arg is props
你當然可以有t wo語法,但要小心順序。更具體的語法(prop = value)必須最後一個:更具體的指令最後一個來。
如果你這樣做:
<Component key={value} {...props} />
它編譯成
React.createElement(Component, _extends({ key: value }, props));
如果你這樣做(你應該是什麼)
<Component {...props} key={value} />
它編譯成
React.createElement(Component, _extends(props, { key: value }));
其中extends是* Object。分配(或者如果不存在則填充)。
要走得更遠我真的會建議花一些時間去觀察巴別爾的輸出online editor。瞭解jsx如何工作,以及更一般地瞭解如何使用es5工具實現es6語法,這非常有趣。
你與功能部件或組件類的工作? – prosti
是的 - 我的設置正如我在原文中陳述的 – Paulos3000