2016-08-12 97 views
1

有没有办法拿到店里状态/动作的出口编程的生产可能被导入回到开发工具?导出/登录错误跟踪服务

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

我想以与从Redux Dev Tools导出相同的格式捕获。

样品从开发工具出口

{"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}]} 
+0

你可以写一个[自定义监视器(HTTPS:/ /github.com/gaearon/redux-devtools/issues/3)for redux-devtools。但不知道在生产中使用devtools是否是个好主意。 – Steffen

回答

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" 
    }] 

我创造了这个回购该演示这个动作https://github.com/timarney/redux-trackjs-logger它使用中间件时发生错误记录的操作。

0

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

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

哨兵博客有描述比较详细书面记录:https://blog.sentry.io/2016/08/24/redux-middleware-error-logging.html

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