react 父子元件之間的通訊和函式呼叫

2021-07-24 04:06:37 字數 2457 閱讀 3476

父向子是用props,然後再子那邊有乙個監聽函式

componentwillreceiveprops:function(nextprops));

},

父類呼叫子類的函式

reactjs是一枚新進小鮮肉,跟gulp搭配流行一段時間了。工作或者面試中經常遇到這樣的問題,「子元件如何向父元件傳值?」。其實很簡單,概括起來就是:react中state改變了,元件才會update。父寫好state和處理該state的函式,同時將函式名通過props屬性值的形式傳入子,子呼叫父的函式,同時引起state變化。子元件要寫在父元件之前。具體寫法看下面3個例子。

例子1.這裡如下圖,使用者郵箱為父,綠色框為子。 父元件為使用者輸入的郵箱設好state,即「」,同時寫好處理state的函式,即「handleemail」,這兩個名稱隨意起;再將函式以props的形式傳到子元件,子元件只需在事件發生時,呼叫父元件傳過來的函式即可。 

以下所有例子對應的html

"test

">

//

子元件var child =react.createclass(/>

) }

});//

父元件,此處通過event.target.value獲取子元件的值

var parent =react.createclass(

},handleemail: function(

event

)); },

render: function()/>

) }

});react.render( ,

document.getelementbyid(

'test')

);

例子2.有時候往往需要對資料做處理,再傳給父元件,比如過濾或者自動補全等等,下面的例子對使用者輸入的郵箱做簡單驗證,自動過濾非數字、字母和"@."以外的字元。

子元件,handleval函式處理使用者輸入的字元,再傳給父元件的handelemail函式

var child =react.createclass(,

render: function()/>

) }

});//

父元件,通過handleemail接受到的引數,即子元件的值

var parent =react.createclass(

},handleemail: function(val));

},render: function()/>

) }

});react.render( ,

document.getelementbyid(

'test')

);例子3.如果還存在孫子元件的情況呢?如下圖,黑框為父,綠框為子,紅框為孫,要求子孫的資料都傳給爺爺。原理一樣的,只是父要將爺爺對孫子的處理函式直接傳下去。

孫子,將下拉選項的值傳給爺爺

var grandson =react.createclass(>

"男">男"女

">女

select>

) }

});//

子,將使用者輸入的姓名傳給爹

//對於孫子的處理函式,父只需用props傳下去即可

var child =react.createclass(/>

this.props.handleselect}/>

) }

});//

父元件,準備了兩個state,username和***用來接收子孫傳過來的值,對應兩個函式handleval和handleselect

var parent =react.createclass(

},handleval: function(

event

)); },

handleselect: function(

event

) );

},render: function()

使用者性別:

this.handleval} handleselect=/>

) }

});react.render( ,

document.getelementbyid(

'test')

);

react父子元件之間通訊

父子元件之間通訊 父傳子通訊 類元件 index.js import react from react import reactdom from react dom reactdom.render document.getelementbyid root import react,from reac...

react父子元件通訊

父元件通過props向子元件傳值,子元件通過再constructor中props中獲取父元件的值,如果子元件要修改父元件的值,再子元件中通過this.state 來存下父元件的值,再通過this.setsate 來修改state,如果需要再把值傳給父元件,則通過,方法來實現 在父元件呼叫子元件的時候...

父子元件之間的通訊

父向子元件傳參 父元件直接定義屬性 msg 和屬性值 something interesting 子元件想要取得父元件中定義的屬性值 something interesting 在子元件中定義props,屬性名 msg 在陣列中 子元件即可得到該引數 this.msg 子向父元件傳參 在compon...