javascript - 使用 redux devtools(chrome 扩展)配置 redux store

标签 javascript reactjs ecmascript-6 redux redux-devtools

我正在使用以下样板示例,并尝试将其配置为与 redux devtools 的 chrome 扩展一起使用:

import { createStore, applyMiddleware } from 'redux'
import thunkMiddleware from 'redux-thunk'
import apiMiddleware from '../middleware/api'
import createLogger from 'redux-logger'
import rootReducer from '../reducers'


const logger = createLogger({
  level: 'info',
  collapsed: false,
  logger: console,
  predicate: (getState, action) => true
})

const createStoreWithMiddleware = applyMiddleware(
  thunkMiddleware,
  apiMiddleware,
  logger
)(createStore)

export default function configureStore(initialState) {
  const store = createStoreWithMiddleware(rootReducer, initialState)

  if (module.hot) {
    // Enable Webpack hot module replacement for reducers
    module.hot.accept('../reducers', () => {
      const nextRootReducer = require('../reducers')
      store.replaceReducer(nextRootReducer)
    })
  }

  return store

}

我尝试按如下方式添加它,但出现窗口未定义错误:

import { compose, createStore, applyMiddleware } from 'redux'

const createStoreWithMiddleware = compose(applyMiddleware(
  thunkMiddleware,
  apiMiddleware,
  logger
),window.devToolsExtension ? window.devToolsExtension() : f => f)(createStore)

我假设该结构与 reudx-devtools 扩展示例页面中给出的结构有所不同,但我无法确定它。

如何正确设置带有中间件和增强功能的商店?

最佳答案

typeof window === 'object' && typeof window.devToolsExtension !== 'undefined'
  ? window.devToolsExtension()
  : f => f

这应该可以修复错误。

关于javascript - 使用 redux devtools(chrome 扩展)配置 redux store,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37764771/

相关文章:

javascript - 在索引处连接两个 javascript 数组

javascript - 我可以动态渲染 NgModal 的 HTML吗

javascript - 是否可以为同一个 key 提取两次对象 key ?

javascript - 在 JavaScript 中比较 2 个数组

javascript - 监控 JavaScript 事件

c# - ASP.Net/JQuery : PLUploader "Add Files" will not fire after uploading images

reactjs - Webpack 在控制台崩溃 : setState takes an object of state variables to update or a function which returns an object of state variables

javascript - 如何在 Cypress 测试中获取 Gatsby.js 路由/端点的完整列表

javascript - 使用reactjs数组中的对象

javascript - 为什么我的代理包装 Map 的函数调用会抛出 TypeError?