在我的應用程序中,用戶有多個..讓我們說'狗'。當前選中的狗出現在標題中,並且可以通過標題的下拉菜單進行更改。在選擇他們的新狗後,它在後端將其標記爲primary: true
,並且我將相應的標頭UI更新。從那時起,所有到後端的請求都會返回primary
狗的結果。React:如何重新安裝一個兄弟組件重新運行componentDidMount?
我有一個Layout.jsx
組件,如下所示:
<Header />
<div>
{this.props.children}
</div>
在this.props.children
,我渲染多個不同的資源索引頁,即一個子組件的例子可能是TreatsContainer
其中一個網絡請求在componentDidMount
到/treats
之間,結果在我的佈局中呈現。
我面臨的問題是,當用戶在標頭組件中更改他們的狗時,我想讓其他組件重新運行它們在componentDidMount
中進行的相同網絡請求,以便新選擇的狗顯示數據。我在應用程序中的幾個地方實現了Redux,但我不想將所有數據存儲在全局狀態樹中,因爲用戶可以創建多少資源沒有限制。我的意思是,我不希望所有數據來自/treats
,/toys
,/foods
等等。處理這種情況的好方法是什麼?
當'Header'中的選擇改變時,'Layout'中的道具是否改變?如果不是,他們可能應該。然後,您可以使用相同的網絡調用實現'componentWillReceiveProps'(可能在* both *方法之外定義,因此不必重複)。我認爲試圖卸載/重新安裝是一個隱藏實際問題的XY問題。你可以爲頭選擇一個單獨的redux狀態元素,並將'Layout'連接到它。 –