我试图弄清楚如何处理React / Redux应用程序中的错误,并发现Redux允许通过不可变状态模式向后遍历状态连续体 . 如果发布失败,同时增加组件的内部重试计数器,并最终发送必要的操作,那么在Redux上及时遍历并不是很疯狂吗?我如何使用react-redux进入以前的状态?
您正在寻找的是一种称为“乐观更新”的模式 . 例如,假设网络呼叫成功,您在网络呼叫之前调度操作 . 如果调用失败,则您将调度第二个操作以还原第一个操作 .
“时间旅行调试”需要使用Redux DevTools . DevTools实际上记录了所有被调度的动作,当你在历史中来回跳转时,将重放到那一点的动作以确定当前状态应该是什么 . 在制作中,没有记录旧动作和旧状态(尽管你可以自己构建一些东西来做那种事情) .
您可以使用redux开发人员工具进行chrome,以获得时间旅行的优秀UI / UX . 继续在Chrome商店中安装redux dev工具 .
此外,您使用redux dev工具'll need to tell your redux store that you' . 为此,您需要在 createStore() 方法中进行一些调整 .
createStore()
看看this repo的描述,看看它的实际效果 .
请参阅此代码,在redux存储中注入一个开发工具增强器 -
import { createStore, applyMiddleware, compose } from 'redux'; import createReducer from './reducers'; const devtools = window.devToolsExtension || (() => noop => noop); export default function configureStore(initialState = {}, middlewares) { const enhancers = [ applyMiddleware(...middlewares), devtools(), ]; const store = createStore( createReducer(), initialState, compose(...enhancers) ); return store; }
2 回答
您正在寻找的是一种称为“乐观更新”的模式 . 例如,假设网络呼叫成功,您在网络呼叫之前调度操作 . 如果调用失败,则您将调度第二个操作以还原第一个操作 .
“时间旅行调试”需要使用Redux DevTools . DevTools实际上记录了所有被调度的动作,当你在历史中来回跳转时,将重放到那一点的动作以确定当前状态应该是什么 . 在制作中,没有记录旧动作和旧状态(尽管你可以自己构建一些东西来做那种事情) .
您可以使用redux开发人员工具进行chrome,以获得时间旅行的优秀UI / UX . 继续在Chrome商店中安装redux dev工具 .
此外,您使用redux dev工具'll need to tell your redux store that you' . 为此,您需要在
createStore()
方法中进行一些调整 .看看this repo的描述,看看它的实际效果 .
请参阅此代码,在redux存储中注入一个开发工具增强器 -