2017-10-20 55 views

回答

0

传奇故事任何实现是的lib此 - 他们观看了指定类型的任何行动。导航将采取两个动作:一个表示导航将要发生(传奇将会观看)以及一个实际更新当前页面。第一种类型的动作监视传奇,如果数据发生变化,则显示警告对话框。

例:

function showWarning(action) { 
    if (/* data has been changed but not saved */) { 
    displayWarningDialog(action.pageToNavigateTo) 
    } 
    else { 
    // action that updates the page/location 
    completeNavigation(action.pageToNavigateTo) 
    } 
} 

function* mySaga() { 
    // NAVIGATE_TO_PAGE_X are the actions that get fired when a user changes pages 
    yield takeEvery("NAVIGATE_TO_PAGE_1", showWarning) 
    yield takeEvery("NAVIGATE_TO_PAGE_2", showWarning) 
} 
+0

但主要是如何捕获redux的状态变化? – Kamaraju

0

有惊人Redux DevTools的状态调试。这个工具是由Redux作者自己构建的。

以下是其功能

  • 让您通过“取消”行动
  • 如果你改变了减速机代码,每个“上演”检查每一个州和行动有效载荷
  • 让你回去的时间行动将是 重新评估
  • 如果减速扔,你会看到在此期间,该行动发生 ,什么错误是
  • persistState()店增强剂,你能坚持整个页面重新加载
0

我已经想过这个最近也和有没有想过写一些形式的中间件拦截路由操作调试会话 。

拦截路由动作时,中间件可以确定应用程序状态是否指示用户正在编辑一些未保存的数据,如果是,则调度不同的动作。该行为应该减少状态并引起警告呈现。然后用户可以确认想要通过调度也由中间件拦截的动作来继续导航,以继续路由过程。

相关问题