Redux:获取已触发操作的列表

时间:2018-12-11 17:55:33

标签: angular typescript redux

我在我的角度项目中使用Redux来获取数据到状态并进行一些API调用等等。我注意到redux devtools列出了所有已执行的动作。有没有办法获取我的角度应用程序中触发的动作列表?

我想将操作列表发送到后端并进一步处理。

有没有办法做到这一点?

2 个答案:

答案 0 :(得分:0)

过去我是如何为商店创建日志记录中间件的。这是一个不错的例子。 https://github.com/Webiks/angular-redux-middleware-example

从本质上讲,它捕获了所有操作,您可以根据操作对它们进行操作,或者返回下一个函数以使商店继续运行

export function loggerMiddleware(store) {
  return function (next) {
    return function (action) {
      // log a fancy message and action
      console.log('Hello, this is your captain speaking.', action);
      // continue to the next action
      return next(action);
    };
  };
}

也可以将其重写为如下所示,只是为了缩短它:

export const loggerMiddleware = store => next => action {
      // log a fancy message and action
      console.log('Hello, this is your captain speaking.', action);
      // continue to the next action
      return next(action);
    };
  };
}

答案 1 :(得分:0)

这是一种 super hacky方法,可在30秒内将它们释放。它有很多假设,但可能对您有用。

https://reergymerej.github.io/blog/2019/06/14/janky-event-exports.html

  • 在控制台中输入__REDUX_DEVTOOLS_EXTENSION__
  • 双击以在VM中打开源。
  • 精美印刷。
  • 断点:356。
  • 返回到该工具并跳转到一个动作。这应该达到您的断点。
Object.keys(t.actionsById).forEach((id) =>
  console.log(t["actionsById"][id].action.type))