From c3450977289b141e02a447d37b9915fcf2d27406 Mon Sep 17 00:00:00 2001 From: KhalfaniW Date: Thu, 23 Oct 2025 16:29:24 -0500 Subject: [PATCH] Fix examples in Walkthrough.md - Modernize devtools Monitor imports - fix DevTools.instrument() for redux-toolkit --- docs/Walkthrough.md | 26 +++++++++++++++++++++++--- 1 file changed, 23 insertions(+), 3 deletions(-) diff --git a/docs/Walkthrough.md b/docs/Walkthrough.md index ae1d0ce0..a0dd51b1 100644 --- a/docs/Walkthrough.md +++ b/docs/Walkthrough.md @@ -37,8 +37,8 @@ import React from 'react'; import { createDevTools } from '@redux-devtools/core'; // Monitors are separate packages, and you can make a custom one -import LogMonitor from '@redux-devtools/log-monitor'; -import DockMonitor from '@redux-devtools/dock-monitor'; +import { LogMonitor } from '@redux-devtools/log-monitor'; +import { DockMonitor } from '@redux-devtools/dock-monitor'; // createDevTools takes a monitor and produces a DevTools component const DevTools = createDevTools( @@ -77,7 +77,27 @@ You can add additional options to it: `DevTools.instrument({ maxAge: 50, shouldC It’s important that you should add `DevTools.instrument()` _after_ `applyMiddleware` in your `compose()` function arguments. This is because `applyMiddleware` is potentially asynchronous, but `DevTools.instrument()` expects all actions to be plain objects rather than actions interpreted by asynchronous middleware such as [redux-promise](https://github.com/acdlite/redux-promise) or [redux-thunk](https://github.com/gaearon/redux-thunk). So make sure `applyMiddleware()` goes first in the `compose()` call, and `DevTools.instrument()` goes after it. -##### `store/configureStore.js` +##### `store/configureStore.js` redux-toolkit + +With redux-toolkit you need to add it as an enhancer and disable the original devtools + +```js +import { configureStore } from "@reduxjs/toolkit"; +import rootReducer from '../reducers'; +import DevTools from '../containers/DevTools'; + +export const store = configureStore({ + reducer: { + root: rootReducer, + }, + devTools: false, + enhancers: (getDefaultEnhancers) => + getDefaultEnhancers().concat(DevTools.instrument()), +}); + +``` + +##### `store/configureStore.js` original ```js import { createStore, applyMiddleware, compose } from 'redux';