2017-02-13 62 views
0

我試圖起牀與加速反應,終極版。我目前有這樣的設置:陣營,路由器重新加載組件時,導航遠離它

商店的狀態有一個'activeAction'屬性,需要一個數字。 頁面組件使用'activeAction'來確定應該在應用程序的中心顯示哪個組件,並根據當前URL進行更改。例如,'/ Home'爲activeAction:0,'/ About'爲activeAction:1

/Home的組件被稱爲BlogRoll,並且此組件具有實際邏輯以顯示來自博客api調用的帖子。我正在調用該操作來顯示組件componentDidMount函數中的帖子。/About的組件只有一個渲染功能,表示「內容區域」......現在只是一個佔位符。

我的導航設置爲鏈接部分組成:

<div className="NavItem"> 
    <Link to={'/Home'} activeClassName="ActiveMenuItem">Home</Link> 
</div> 
<div className="NavItem"> 
    <Link to={'/About'} activeClassName="ActiveMenuItem">About</Link> 
</div> 

我是點擊後Home Link(工作正常),然後單擊About Link,在網誌串連compenent是越來越纔去重新加載時遇到的問題關於組件。我知道這是通過在BlogRoll.componentDidMount()中設置一個斷點。我點擊去About,但在此之前它會重新加載BlogRoll。

這是故意的行爲嗎?它似乎不應該這樣做,但我仍然在學習,可能還沒有完全理解組件生命週期。

感謝您的幫助!

回答

0

這是一個有意的行爲。

React-router如果組件未呈現,組件將被卸載。

你可以閱讀更多有關react-router repo組件的生命週期。

如果您想在組件中使用持久狀態,則可以使用Redux存儲。

+0

是否卸載觸發componentDidMount()?我想避免重新安裝當時不需要的組件。導航到/ About應該卸載BlogRoll,然後掛載關於。 – nclayton

+0

編號'componentDidMount()'應當在關於後返回到BlogRoll時觸發。需要查看代碼才能瞭解發生了什麼 –