我正在设置一个简单的React / Redux应用程序。这是我的设置:
var {createStore, applyMiddleware } = require('redux')
var thunkMiddleware = require('redux-thunk')
var store = createStore(
reducers,
applyMiddleware(thunkMiddleware)
)
class App extends React.Component {
render() {
return (
<Provider store={store}>
<HashRouter>
<div className="app">
<Route exact path='/' component={Home}/>
<Route path='/Test' component={Test}/>
</div>
</HashRouter>
</Provider>
);
}
}
此外,这是我的减速机:
var {combineReducers} = require('redux')
const carlist = (state=[], action) => {
switch (action.type){
case 'LOAD':
return action.test
default:
return state
}
}
module.exports = combineReducers({carlist})
当我运行我的应用程序时,我收到此错误:
applyMiddleware.js:39 Uncaught TypeError:中间件不是函数
我错过了什么?
答案 0 :(得分:3)
问题看起来可能就在这里:
var thunkMiddleware = require('redux-thunk')
你的中间件 - 这里thunkMiddleware
- 不是一个功能,暗示它没有被从包中拉出来。你应该试试:
var thunkMiddleware = require('redux-thunk').default
或者,尝试使用ES6模块语法(因为您已经在使用ES6功能):
import thunkMiddleware from 'redux-thunk'
答案 1 :(得分:0)
使用redux-logger
我刚刚升级了我的包并更改了
import createLogger from 'redux-logger'
到
import { createLogger } from 'redux-logger'