2017-05-10 40 views
1

我試圖找到最佳方式來初始化我的組件道具...從商店初始化道具

我有一個組件正在從商店獲取它的值。道具通常用mapStateToProps來處理,這對大多數情況來說都很好。

但是,由於mapStateToProps僅在商店更新時調用,因此當我在未執行任何商店更新的情況下加載我的組件時,我的組件未使用商店中的道具進行初始化。

我讀了關於將「ownprops」設置爲mapStateToProps的第二個參數的事情,以便在父組件的道具更新時調用它,但我不認爲這是正確的選項。

必須有一個簡單的方法,它必須是因爲我是一個初學者,我不知道如何處理似乎是一個共同的話題。

非常感謝您的幫助:)

+0

對於初始渲染,它應該觸發mapStateToProps。你能提供一個鏈接到你的真實用例(例如通過jsbin)的沙箱嗎? – Skay

回答

1

這聽起來像你正在呈現依賴於數據從商店,但是,當組件被渲染的商店是空的一個組成部分。

您需要在組件呈現前更新商店。這是最簡單的答案。

因此,假設您有一個父組件,可以呈現連接到商店的子組件。該父組件應在呈現子組件之前更新商店。

或者如果該層次結構不是這種情況,那麼您可以在componentWillMount()生命週期方法中分派一個操作。

另一種選擇是將默認值放入減速器中。

很難在沒有看到您的代碼/用例的情況下知道正確的解決方案。

+0

感謝您的回答。我會看看我的情況最好。我仍然想知道爲了使mapStateToProps查找商店內容而需要分派什麼樣的操作。它會是一種沒有價值的假動作創造者嗎? –