我們有一個react-redux項目,我們試圖設置錯誤傳播和錯誤頁面顯示機制。React-Redux錯誤頁面管理
到目前爲止,我們一直在做的是:當異步API調用或其他地方發生錯誤時,我們觸發一個操作並修改根級組件App。在根級別減速器中,我們將錯誤字段設置爲傳播錯誤的狀態。當觀察到錯誤時,我們渲染錯誤頁面而不是我們擁有的內容。
所以流程如下:組件A - >動作 - > App Reducer - >應用程序組件 - 渲染errorPage。
但問題是狀態仍然與錯誤組件。而且,由於錯誤字段保持在應用程序繼續呈現錯誤頁面的狀態。我們基本上需要一種機制,以便每當用戶觸發新的操作或每當錯誤頁面呈現時,都會將狀態中的錯誤字段重置爲{}。
我們無法找到解決此問題的好方法。它看起來像以前任何人都可能遇到的非常普通的一個。一般來說,我們如何處理異步錯誤傳播並相應地顯示錯誤頁面。
是的,我們使用react-router。我們可以通過路由器顯示錯誤頁面,這是真實的,並且我們實現了這一點,但是我們的狀態仍然與先前的錯誤一樣髒。當我嘗試更新組件的狀態(通過觸發reducer函數的動作)時,我收到了一個更新render方法內部狀態的投訴。有沒有辦法在渲染方法之外做到這一點? – ralzaul
當然:嘗試[componentWillReceiveProps()](https://facebook.github.io/react/docs/component-specs.html#updating-componentwillreceiveprops) –
componentWillReceiveProps()的問題是當您再次更新狀態時,應用程序重新呈現,錯誤頁面不再顯示。所以它就像你顯示錯誤頁面,狀態得到更新,並且你失去了錯誤頁面,因爲錯誤狀態不再存在。 – ralzaul