Redux DevTools 为什么在浏览器里找不到? 打工人芹芹 提问于 2026-02-28 16:11:18 阅读 12 前端 我按照文档装了 Redux DevTools 浏览器扩展,也在代码里加了 devTools: true,但打开 Chrome 开发者工具还是看不到 Redux 那个 tab,是我哪里漏了吗? 这是我的 store 配置: const store = createStore( rootReducer, window.__REDUX_DEVTOOLS_EXTENSION__ && window.__REDUX_DEVTOOLS_EXTENSION__() ); 我来解答 赞 2 收藏 分享 生成中... 手机扫码查看 复制链接 生成海报 反馈 发表解答 您需要先 登录/注册 才能发表解答 2 条解答 设计师悦洋 Lv1 哎呀看到你的代码了,这个写法本身没啥大问题,但我怀疑有几个地方可能踩坑了,你排查一下。 先确认下 Chrome 扩展是不是真的启用了。点浏览器右上角那个拼图图标,找到 Redux DevTools,确保它是开启状态。有时候装了但没启用也是白搭。 然后检查下开发者工具里,右上角有个 ">>" 的箭头,点开看看 Redux 是不是藏在里面。有时候 tab 太多了会被折叠进去,我之前也被这个坑过。 如果上面都没问题,试试刷新页面,或者干脆重启一下浏览器。Redux DevTools 需要在页面加载时注入那个全局变量,有时候装完扩展需要重启才能生效。 另外你的代码可以稍微改得更稳妥一点: const store = createStore( rootReducer, window.__REDUX_DEVTOOLS_EXTENSION__ && window.__REDUX_DEVTOOLS_EXTENSION__() ); 你原代码里用了 &&,这是 HTML 转义后的写法,如果直接复制粘贴的话其实是错的,要用真正的 && 运算符才行。 如果还是不行,打开控制台敲一下 window.__REDUX_DEVTOOLS_EXTENSION__ 看看是不是 undefined,如果是的话那就是扩展没正确加载。 希望能帮到你!搞定了说一声哈。 回复 点赞 2026-03-01 12:25 IT人振巧 Lv1 看到你的代码了,问题应该不难排查,我们一步步来。 先说个最容易被忽略的点,Chrome 开发者工具的 tab 栏是有宽度限制的,Redux DevTools 的 tab 很可能被折叠到最右边的那个 >> 箭头里面了。点开那个箭头看看有没有 Redux 选项,有的话右键把它 pin 住就行。 如果那里也没有,我们再检查几个地方。 第一,确认扩展真的装好了。在地址栏输入 chrome://extensions/,找找有没有 Redux DevTools,得是开启状态才行。要是连这个页面都找不到,那就是扩展根本没装上,去 Chrome 商店重新装一遍。 第二,你的代码写法本身没问题,但我建议稍微改一下,加个容错处理: import { createStore, compose } from 'redux'; const store = createStore( rootReducer, compose( // 这个判断是为了防止没装扩展时报错 window.__REDUX_DEVTOOLS_EXTENSION__ ? window.__REDUX_DEVTOOLS_EXTENSION__() : f => f ) ); 原理是这样:createStore 的第二个参数如果是函数,Redux 会把它当作 enhancer 来处理。你原来的写法在扩展没装的时候会返回 undefined,可能导致一些奇怪的问题。用 compose 包一下,再给个默认值 f => f(就是个透传函数),就比较稳了。 第三,打开控制台看看有没有报错。有时候是其他代码报错导致 store 根本没创建成功,那扩展自然也检测不到。 第四,刷新页面。这个听起来很傻,但有时候扩展刚装好需要刷新一下页面才能生效,或者你代码改了没刷新。 第五,如果你用的是 Redux Toolkit,那就更简单了,configureStore 默认就开启了 DevTools: import { configureStore } from '@reduxjs/toolkit'; const store = configureStore({ reducer: rootReducer, // devTools: true // 默认就是 true,开发环境自动开启,不用手动写 }); 基本上就是这几个原因,绝大多数情况就是 tab 被折叠了或者扩展没开。排查完告诉我结果。 回复 点赞 3 2026-02-28 22:12 加载更多 相关推荐 2 回答 144 浏览 为什么Redux DevTools显示空状态但没报错? 在React项目里配置了Redux store后,Redux DevTools扩展明明已经打开,状态却一直显示为空对象。代码应该没问题啊,我检查过Provider包裹了根组件,store也正确传进去了... 夏侯熙炫 前端 2026-02-19 00:13:23 2 回答 44 浏览 Redux DevTools为什么不记录异步操作的中间状态? 在用Redux Toolkit处理API调用时,发现DevTools时间轴里只有最终的success状态,中间的pending状态完全没显示。明明在slice里设置了extraReducers处理pe... 书生シ瑞琴 前端 2026-01-25 20:35:20 2 回答 37 浏览 Taro项目里用了Redux,为什么页面跳转回来状态就没了? 大家好,我在用Taro3开发小程序时遇到了个奇怪的问题。我按照文档配置了Redux store, 在页面A里通过dispatch更新了状态,跳转到页面B再返回后,之前的状态就变回初始值了。我试过在页面... 爱学习的芳芳 框架 2026-02-18 17:03:28 1 回答 2 浏览 Chrome DevTools 内存快照里怎么定位闭包导致的内存泄漏? 我在做一个单页应用,发现切换页面后内存一直涨,用 DevTools 的 Memory 面板拍了快照,看到很多 Detached DOM tree 和 Closure,但不知道具体是哪段代码引起的。我怀... Newb.梓晨 优化 2026-03-04 12:09:19 1 回答 70 浏览 前端代码混淆后,怎么防止别人通过 DevTools 轻松还原样式? 我最近在做项目上线前的代码保护,用工具把 JS 混淆了,但发现 CSS 样式还是能被直接在 DevTools 里看到,甚至改几行就能绕过一些限制。比如我写了段隐藏调试面板的样式,结果别人一打开控制台就... ♫丽苹 安全 2026-03-01 13:57:21 1 回答 34 浏览 Taro中Redux状态更新后页面不重新渲染怎么办? 我在Taro项目里用Redux管理状态,dispatch action之后state确实变了,但页面就是不重新渲染。我试过用useSelector取数据,也确认了reducer返回的是新对象,可组件还... A. 普涵 框架 2026-02-28 14:01:23 1 回答 12 浏览 Redux中异步action怎么处理?dispatch后没反应怎么办? 我在用Redux写一个登录功能,调用接口是异步的,但发现直接在action里写async/await然后dispatch,组件那边完全收不到状态更新。我试过把请求放在action creator里,也... 司徒智慧 框架 2026-02-27 08:49:25 2 回答 75 浏览 Redux异步action更新状态后页面没变化怎么办? 我在用Redux Toolkit处理API请求时遇到问题,当调用fetchData的thunk后,状态虽然在store里更新了,但页面组件没重新渲染。我检查过action确实被dispatch了,但s... 上官洛熙 框架 2026-02-16 00:49:37 1 回答 192 浏览 Redux中如何安全更新嵌套对象的属性? 在用Redux管理用户资料时遇到了问题,用户资料结构是这样的:user: { name: 'John', address: { city: 'NY', zip: '10001' } }。当我尝试更新地... Newb.青青 框架 2026-02-14 18:08:29 2 回答 53 浏览 Vue DevTools组件树显示不更新,即使数据变化了怎么办? 大家好,我在用Vue3开发时遇到个怪问题:当修改响应式数据后,页面正常更新了,但Vue DevTools的组件树和响应式数据面板一直显示旧值。比如我用ref定义的计数器加了1,页面显示正确,但DevT... UE丶梦轩 前端 2026-02-06 19:29:26
先确认下 Chrome 扩展是不是真的启用了。点浏览器右上角那个拼图图标,找到 Redux DevTools,确保它是开启状态。有时候装了但没启用也是白搭。
然后检查下开发者工具里,右上角有个 ">>" 的箭头,点开看看 Redux 是不是藏在里面。有时候 tab 太多了会被折叠进去,我之前也被这个坑过。
如果上面都没问题,试试刷新页面,或者干脆重启一下浏览器。Redux DevTools 需要在页面加载时注入那个全局变量,有时候装完扩展需要重启才能生效。
另外你的代码可以稍微改得更稳妥一点:
你原代码里用了
&&,这是 HTML 转义后的写法,如果直接复制粘贴的话其实是错的,要用真正的&&运算符才行。如果还是不行,打开控制台敲一下
window.__REDUX_DEVTOOLS_EXTENSION__看看是不是 undefined,如果是的话那就是扩展没正确加载。希望能帮到你!搞定了说一声哈。
先说个最容易被忽略的点,Chrome 开发者工具的 tab 栏是有宽度限制的,Redux DevTools 的 tab 很可能被折叠到最右边的那个 >> 箭头里面了。点开那个箭头看看有没有 Redux 选项,有的话右键把它 pin 住就行。
如果那里也没有,我们再检查几个地方。
第一,确认扩展真的装好了。在地址栏输入 chrome://extensions/,找找有没有 Redux DevTools,得是开启状态才行。要是连这个页面都找不到,那就是扩展根本没装上,去 Chrome 商店重新装一遍。
第二,你的代码写法本身没问题,但我建议稍微改一下,加个容错处理:
原理是这样:createStore 的第二个参数如果是函数,Redux 会把它当作 enhancer 来处理。你原来的写法在扩展没装的时候会返回 undefined,可能导致一些奇怪的问题。用 compose 包一下,再给个默认值 f => f(就是个透传函数),就比较稳了。
第三,打开控制台看看有没有报错。有时候是其他代码报错导致 store 根本没创建成功,那扩展自然也检测不到。
第四,刷新页面。这个听起来很傻,但有时候扩展刚装好需要刷新一下页面才能生效,或者你代码改了没刷新。
第五,如果你用的是 Redux Toolkit,那就更简单了,configureStore 默认就开启了 DevTools:
基本上就是这几个原因,绝大多数情况就是 tab 被折叠了或者扩展没开。排查完告诉我结果。