有什么方法可以知道 redux 中发送的最新操作

0 reactjs redux redux-thunk react-redux

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

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

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

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

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

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

小智 6

您可以使用store.subscribe,如下所述

最简单的方法是让减速器只记住最后一个动作:

function lastAction(state = null, action) {
  return action;
}
Run Code Online (Sandbox Code Playgroud)

然后你可以使用 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);
});
Run Code Online (Sandbox Code Playgroud)


归档时间:

查看次数:

4427 次

最近记录:

6 年,11 月 前