1

有没有办法在生产中以编程方式导出商店状态/操作,可以导入回开发工具?

例如,我可以设置中间件来捕获当前状态并将其发送到(Trackjs、Sentry、Rollbar)之类的东西,但它缺少所有以前的状态和动作。

我想以与从 Redux 开发工具导出相同的格式进行捕获。

从开发工具导出示例

 {"monitorState":{},"actionsById":{"0":{"type":"PERFORM_ACTION","action":{"type":"@@INIT"},"timestamp":1471017239656},"1":{"type":"PERFORM_ACTION","action":{"type":"INCREMENT"},"timestamp":1471017242004}},"nextActionId":2,"stagedActionIds":[0,1],"skippedActionIds":[],"committedState":5,"currentStateIndex":1,"computedStates":[{"state":5},{"state":6}]}
4

2 回答 2

1

这目前正在开发中,但您现在可以在扩展程序中推送操作历史记录,请参阅https://github.com/zalmoxisus/remotedev-server/pull/20

另一种选择是将操作作为数组保存到 JSON 文件中,然后重新导入。

从https://github.com/zalmoxisus/redux-devtools-extension/issues/173开始,这是可能的

logger.js

let actions = []
export function logActions (stateSanitizer) {
  return store => next => action => {
    actions.push(action)
    return next(action)
  }
}

这些操作可以保存到文件或数据库中,并且可以重新导入开发工具。

示例操作

[{
    "type": "INCREMENT"
  }, {
    "type": "DECREMENT"
  }, {
    "type": "DECREMENT"
  }, {
    "type": "DECREMENT"
  }, {
    "type": "DECREMENT"
  }]

我创建了这个 repo 来演示这个操作https://github.com/timarney/redux-trackjs-logger它使用中间件在发生错误时记录操作。

于 2016-08-14T00:24:41.097 回答
0

我维护了一个名为 Raven for Redux 的 Redux 中间件,它将 Redux 数据附加到 Sentry 错误报告中。目前,它为每个错误报告添加了以下上下文:

  1. 完整的状态对象。
  2. 完整的最后一个动作对象。
  3. type导致当前状态的所有操作。这些被添加为“面包屑”。

Sentry 博客有一篇文章对其进行了更详细的描述:https ://blog.sentry.io/2016/08/24/redux-middleware-error-logging.html

你可以在这里找到作为 NPM 包的中间件:https ://github.com/captbaritone/raven-for-redux

于 2017-06-02T15:37:33.027 回答