父向子是用props,然後再子那邊有乙個監聽函式
componentwillreceiveprops:function(nextprops));
},
父類呼叫子類的函式
reactjs是一枚新進小鮮肉,跟gulp搭配流行一段時間了。工作或者面試中經常遇到這樣的問題,「子元件如何向父元件傳值?」。其實很簡單,概括起來就是:react中state改變了,元件才會update。父寫好state和處理該state的函式,同時將函式名通過props屬性值的形式傳入子,子呼叫父的函式,同時引起state變化。子元件要寫在父元件之前。具體寫法看下面3個例子。
例子1.這裡如下圖,使用者郵箱為父,綠色框為子。 父元件為使用者輸入的郵箱設好state,即「」,同時寫好處理state的函式,即「handleemail」,這兩個名稱隨意起;再將函式以props的形式傳到子元件,子元件只需在事件發生時,呼叫父元件傳過來的函式即可。
以下所有例子對應的html
"test
">
//例子2.有時候往往需要對資料做處理,再傳給父元件,比如過濾或者自動補全等等,下面的例子對使用者輸入的郵箱做簡單驗證,自動過濾非數字、字母和"@."以外的字元。子元件var child =react.createclass(/>
) }
});//
父元件,此處通過event.target.value獲取子元件的值
var parent =react.createclass(
},handleemail: function(
event
)); },
render: function()/>
) }
});react.render( ,
document.getelementbyid(
'test')
);
子元件,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...