簡體   English   中英

React Router,單擊瀏覽器的后退按鈕時的生命周期

[英]React Router, lifecycle when browser's back button is clicked

我想檢測用戶何時單擊后退按鈕。 本質上,當用戶從/ projects轉到/ projects / foo時,導航樣式會更改。

<Route path="/projects" component={(props, state, params) => 
        <Projects {...props} />
</Route>

當檢測到從/ projects到特定項目的onClick事件時,此方法工作正常,但是當用戶單擊后退按鈕時,未調用componentDidMount ...。我試圖使用this.props.location.pathname確定特定路徑,但是由於需要設置狀態,因此我無法在render執行此操作。

有沒有一種“反應”的方式來解決這個問題? 謝謝

如您所述, componentDidMount僅在安裝組件時被調用一次。 而是使用生命周期掛鈎componentWillReceiveProps 是文檔。

如果您位於所需/正確的路徑,則可以使用此條件有條件地設置狀態。 這將更新狀態,然后重新渲染組件。

更新:

自發布此答案以來,不推薦使用componentWillReceiveProps WillReceiveProps。 根據您的用例,您將需要使用shouldComponentUpdategetDerivedStateFromProps 有關此的更多信息。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM