首页 > 解决方案 > 任何知道在 redux 中发送的最新操作的方法

问题描述

我正在开发一个 react-with-redux 应用程序我正在使用库 redux-undo 并且随着库的功能的发展,它会侦听操作列表并在撤消发生时恢复到以前的状态。

场景:我有一个页面,其中将创建/删除一个列表项,并且每当这些操作发生时都会进行 API 调用。用户可以撤消创建和删除操作。

我想知道是否有任何方法可以知道已发送的最新操作。

例如:如果用户创建一个列表项并单击撤消,我想知道最近调度的操作是创建,以便我可以恢复创建(通过调用 API 来删除列表项)。

同样,如果用户删除了一个列表项,我想知道已调度的最新操作是删除,以便我可以恢复删除(通过进行 API 调用再次创建列表项,从过去的形状中获取详细信息状态并发送已删除列表项的详细信息)

请让我知道是否有任何方法可以实现这一目标?

标签: reactjsreduxreact-reduxredux-thunk

解决方案


您可以使用,如此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);
});

推荐阅读