【发布时间】:2016-10-12 09:32:20
【问题描述】:
我正在使用以下样板示例,并尝试将其配置为与 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 扩展示例页面中给出的结构有所不同,但我无法确定。
如何以正确的方式使用中间件和增强功能设置商店?
【问题讨论】:
-
没有定义窗口?这段代码没有在浏览器中运行吗?
-
本视频解释了如何将 redux devtool 连接到基本的 react redux 应用 - youtu.be/TSOVLXQPWgA
标签: javascript reactjs ecmascript-6 redux redux-devtools