2017-09-20 31 views
1

我在我的redux商店中有一個message屬性,並且其中包含的消息顯示在「頁面」的頂部。例如「您的請求已被接受」等。但是,每當用戶選擇轉到不同的「頁面」時,該消息應該消失。如何顯示一條消息並在每次路線更改時將其刪除

換句話說,我想要的東西類似於django.contrib.messages,其中消息只持續到下一個請求。除了在「SPA」中沒有請求,只有React Router切換「頁面」。我認爲這應該在React路由器上實現(例如通過某種方式在每個頁面轉換時運行一個自定義函數),但我並不知道。

是否有一個標準的方法來實現這一目標?

+0

您使用的是什麼版本的react-router? – FurkanO

回答

0

您可以在react-router v4中使用history lib。我不有所有的代碼,但你可以做這樣的事情我看到前面

import createHistory from 'history/createBrowserHistory' 
import {Router} from 'react-router-dom' 

const history = createHistory(); 

history.listen((location, action) => { 
    console.log(location); 
    // something to cleanup the message can be a function or a state change 
}); 

<Router history={history}> 
// router rules 
</Router> 
0

您可以使用react-router-redux,將讓你的狀態同步與您的路線。之後,您可以設置一個減速器,以趕上LOCATION_CHANGE取消您商店中的消息屬性。

此解決方案將在每次更改歷史記錄後重置消息。

有關詳細的文檔檢查https://github.com/reactjs/react-router-redux

相關問題