2017-05-05 156 views
3

我學習通過在線課程反應,跨越如果一個屬性附加到其他財產,像這樣的情況都有所涉獵:React.js:傳遞道具給道具?

this.props.property01(this.props.property02) 

看到,因爲導師只簡單地解決了這一行的代碼,我不能不仍然百思不得其解至於這個「連接」語法實際上代表什麼,即它在幕後造成了什麼。來自Vanilla JS,它看起來像property02被用作property01的參數,但這似乎太簡單的答案。話雖如此,我很理解其餘的代碼。

爲了提供一些上下文,我創建了這個codepen,其中我提到的問題由this.props.onDelete(this.props.whichItem);給出。

鑑於我找不到任何相關的問題,我將不勝感激這方面的一些有見地的闡述。

+0

是的。它看起來像'property2'是'property1'的一個參數,爲什麼不呢?只要你可以像這樣的道具發送函數' this.deleteItem} />' P.S.通過道具時避免綁定https://daveceddia.com/avoid-bind-when-passing-props/ –

回答

2

React組件的屬性可以是函數。當我看到:

this.props.property01(this.props.property02) 

我認爲:

  • this.props.property01是一個函數。
  • this.props.property02作爲參數傳遞給函數。

這意味着該組件將被用作:

<SomeComponent property01={(a) => { /* so something with "a" ... */ } property02={"someValue"} /> 

如果property02僅用於傳遞給property01,沒有別的我寧願是這樣的:

<SomeComponent property01={(a) => { /* do something with "someValue" ... */ } /> 

哪意味着不需要名爲poperty02的房產。

+0

謝謝!這真的有助於:) – gnzg

1

香草JS即將看起來property02被用作論據property01

就是這樣,你是正確的。

this.props.property01(this.props.property02)

property01是一種方法,property02,爭論。

爲別人看着這個

的較詳細的解釋:

假設這條線是在一個名爲MyComponentproperty01成分是MyComponent道具。

父組件的render()方法,將包含這樣的事情:

<MyComponent property01={this.someMethod.bind(this)} /> 

someMethod屬於該母公司組件,但它作爲MyComponentproperty01(子組件)變爲可用。