62957d2472
The normal advice is that `actionType` should be a string. This is purely for debugging purposes. If the tools used for debugging are altered, then it would be easier to use something other than a string. Using a function means you don't have to have a separate action variable from the action creator itself: ```js some someActionCreator = () => ({ type: someActionCreator, }) ``` Redux doesn't care if your action type is a string, object, symbol or whatever. Even @gaearon noted it should be a Symbol for uniqueness, but only said to use strings because of the debugging potential. Another benefit of using functions is you're only comparing memory references rather than strings. This is a performance boost, but probably not one that will manifest in most applications. We could even take this further to include `symbol.description` and `classInstance.constructor.name`. The one downfall is most Redux tooling both utilizes and expects strings. This would need to change. Even `createReducer` would need to take a `Map` of actions instead of an `Object` or this wouldn't work. |
||
---|---|---|
.. | ||
demo/src | ||
src | ||
.babelrc | ||
.npmignore | ||
demo.gif | ||
LICENSE | ||
package.json | ||
README.md | ||
webpack.config.js |
redux-devtools-inspector
A state monitor for Redux DevTools that provides a convenient way to inspect "real world" app states that could be complicated and deeply nested. Created by @alexkuz and merged from alexkuz/redux-devtools-inspector
into reduxjs/redux-devtools
monorepo.
Installation
npm install --save-dev redux-devtools-inspector
Usage
You can use Inspector
as the only monitor in your app:
containers/DevTools.js
import React from 'react';
import { createDevTools } from 'redux-devtools';
import Inspector from 'redux-devtools-inspector';
export default createDevTools(<Inspector />);
Then you can render <DevTools>
to any place inside app or even into a separate popup window.
Alternative, you can use it together with DockMonitor
to make it dockable.
Consult the DockMonitor
README for details of this approach.
Read how to start using Redux DevTools.
Features
The inspector displays a list of actions and a preview panel which shows the state after the selected action and a diff with the previous state. If no actions are selected, the last state is shown.
You may pin a certain part of the state to only track its changes.
Props
Name | Type | Description |
---|---|---|
theme |
Object or string | Contains either base16 theme name or object, that can be base16 colors map or object containing classnames or styles. |
invertTheme |
Boolean | Inverts theme color luminance, making light theme out of dark theme and vice versa. |
supportImmutable |
Boolean | Better Immutable rendering in Diff (can affect performance if state has huge objects/arrays). false by default. |
tabs |
Array or function | Overrides list of tabs (see below) |
diffObjectHash |
Function | Optional callback for better array handling in diffs (see jsondiffpatch docs) |
diffPropertyFilter |
Function | Optional callback for ignoring particular props in diff (see jsondiffpatch docs) |
If tabs
is a function, it receives a list of default tabs and should return updated list, for example:
defaultTabs => [...defaultTabs, { name: 'My Tab', component: MyTab }]
If tabs
is an array, only provided tabs are rendered.
component
is provided with action
and other props, see ActionPreview.jsx
for reference.
Usage example: redux-devtools-test-generator
.
License
MIT