mirror of
				https://github.com/reduxjs/redux-devtools.git
				synced 2025-10-30 23:47:35 +03:00 
			
		
		
		
	|  | ||
|---|---|---|
| .. | ||
| src | ||
| test | ||
| .eslintignore | ||
| .eslintrc.js | ||
| babel.config.esm.json | ||
| babel.config.json | ||
| CHANGELOG.md | ||
| jest.config.js | ||
| LICENSE.md | ||
| package.json | ||
| README.md | ||
| tsconfig.json | ||
| tsconfig.test.json | ||
Redux DevTools Instrumentation
Redux enhancer used along with Redux DevTools or Remote Redux DevTools.
Installation
yarn add @redux-devtools/instrument
Usage
Add the store enhancer:
store/configureStore.js
import { createStore, applyMiddleware, compose } from 'redux';
import thunk from 'redux-thunk';
import devTools from 'remote-redux-devtools';
import reducer from '../reducers';
// Usually you import the reducer from the monitor
// or apply with createDevTools as explained in Redux DevTools
const monitorReducer = (state = {}, action) => state;
export default function configureStore(initialState) {
  const enhancer = compose(
    applyMiddleware(...middlewares),
    // other enhancers and applyMiddleware should be added before the instrumentation
    instrument(monitorReducer, { maxAge: 50 })
  );
  // Note: passing enhancer as last argument requires redux@>=3.1.0
  return createStore(reducer, initialState, enhancer);
}
API
instrument(monitorReducer, [options])
- arguments
- monitorReducer function called whenever an action is dispatched (see the example of a monitor reducer).
- options object
- maxAge number or function(currentLiftedAction, previousLiftedState) - maximum allowed actions to be stored on the history tree, the oldest actions are removed once maxAgeis reached. Can be generated dynamically with a function getting current action as argument.
- shouldCatchErrors boolean - if specified as true, whenever there's an exception in reducers, the monitors will show the error message, and next actions will not be dispatched.
- shouldRecordChanges boolean - if specified as false, it will not record the changes tillpauseRecording(false)is dispatched. Default istrue.
- pauseActionType string - if specified, whenever pauseRecording(false)lifted action is dispatched and there are actions in the history log, will add this action type. If not specified, will commit when paused.
- shouldStartLocked boolean - if specified as true, it will not allow any non-monitor actions to be dispatched tilllockChanges(false)is dispatched. Default isfalse.
- shouldHotReload boolean - if set to false, will not recompute the states on hot reloading (or on replacing the reducers). Default totrue.
- trace boolean or function - if set to true, will include stack trace for every dispatched action. You can use a function (with action object as argument) which should returnnew Error().stackstring, getting the stack outside of reducers. Default tofalse.
- traceLimit number - maximum stack trace frames to be stored (in case traceoption was provided astrue). By default it's10. Iftraceoption is a function,traceLimitwill have no effect, that should be handled there like so:trace: () => new Error().stack.split('\n').slice(0, limit+1).join('\n')(+1is needed for Chrome where's an extra 1st frame forError\n).
 
- maxAge number or function(currentLiftedAction, previousLiftedState) - maximum allowed actions to be stored on the history tree, the oldest actions are removed once 
 
License
MIT