reactjs - 任何知道在 redux 中发送的最新操作的方法
问题描述
我正在开发一个 react-with-redux 应用程序我正在使用库 redux-undo 并且随着库的功能的发展,它会侦听操作列表并在撤消发生时恢复到以前的状态。
场景:我有一个页面,其中将创建/删除一个列表项,并且每当这些操作发生时都会进行 API 调用。用户可以撤消创建和删除操作。
我想知道是否有任何方法可以知道已发送的最新操作。
例如:如果用户创建一个列表项并单击撤消,我想知道最近调度的操作是创建,以便我可以恢复创建(通过调用 API 来删除列表项)。
同样,如果用户删除了一个列表项,我想知道已调度的最新操作是删除,以便我可以恢复删除(通过进行 API 调用再次创建列表项,从过去的形状中获取详细信息状态并发送已删除列表项的详细信息)
请让我知道是否有任何方法可以实现这一目标?
解决方案
您可以使用,如此处store.subscribe
所述:
最简单的方法是使用一个只记住最后一个动作的 reducer:
function lastAction(state = null, action) {
return action;
}
然后你可以使用 store.getState().lastAction,假设你做了类似的事情
import { combineReducers, createStore } from 'redux';
const rootReducer = combineReducers({
someReducer,
someOtherReducer,
lastAction // <-- use it!
});
const store = createStore(rootReducer);
store.subscribe(() => {
console.log(store.getState().lastAction);
});