Current Working Example如何從父組件中動態添加子組件值時訪問子組件值?
我創建具有不同數量的基礎上,從一個選擇框的用戶選擇輸入元素的搜索形式。
我要打破這種分爲三個組成部分,一個叫SearchContainer
包裝,一個叫SearchSelect
選擇框,以及組件中的輸入稱爲SearchWithTwo
和SearchWithOne
只是爲了舉例起見。
App └─SearchContainer Form │ SearchSelect │ ... any one of the multiple search inputs (SearchWithOne, SearchWithTwo)
當用戶改變選擇框被裝載其中包含輸入的相關分量的值。該組件可以有1到10個輸入。我見過的所有例子都使用ref
提到,如果我的輸入沒有改變,那將會很棒。
目前,我有它的工作通過使用onSubmit
處理以下爲SearchContainer
handleSubmit: function(e) {
e.preventDefault();
var form = this.getDOMNode();
[].forEach.call(form.elements, function(e){
// get the values
});
// submit the values to get results.
}
然而,這並不覺得自己是正確的方式來這樣做。是否有更好的推薦方法來遍歷子組件並閱讀它們的狀態?或者我可以以某種方式讓孩子進入父母狀態並獲得這些價值觀?
在我看來,輸入數據可以存儲在數組中,因爲它改變(根據需要在輸入上使用onchange或onkeydown事件)。然後,您不需要遍歷DOM元素來處理提交。 – 2015-02-23 21:03:46
@AustinMullins嗯我不確定你的意思我猜。例如,用戶可能從一個輸入開始,然後將其更改爲5(用於其他搜索),然後將其更改回來。您是否建議僅將數組數據保留在搜索容器中並從兒童組件更改事件修改它? – Loktar 2015-02-23 21:08:00
是的。基本上,@ carb0nshel1和我所說的是,你的數據應該被包含一個數組/列表搜索條件的模型封裝,並且可能還有多少條目實際上處於活動狀態。 – 2015-02-23 21:10:37