我正在设置一个简单的 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>
);
}
}
此外,这是我的 reducer :
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: middleware is not a function
我错过了什么?
最佳答案
问题看起来可能出在这里:
var thunkMiddleware = require('redux-thunk')
您的中间件——这里是 thunkMiddleware
——不是一个函数,这表明它不是从包中提取的。你应该尝试:
var thunkMiddleware = require('redux-thunk').default
或者,尝试使用 ES6 模块语法(因为您已经在使用 ES6 功能):
从 'redux-thunk' 导入 thunkMiddleware
关于redux - 为什么我在 redux 中得到 `middleware is not a function'?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44081111/