我正在使用Redux尝试使用新的react-router-v4,偶然发现了以下错误: “动作必须是普通对象。对异步动作使用自定义中间件。”
store.js:
export const history = createHistory();
const enhancers = [];
const middleware = [
thunk,
routerMiddleware(history)
]
if (process.env.NODE_ENV === "development") {
const devToolsExtension = window.__REDUX_DEVTOOLS_EXTENSION__;
if (typeof devToolsExtension === "function") {
enhancers.push(devToolsExtension())
}
}
const composedEnhancers = compose(
applyMiddleware(...middleware),
...enhancers
)
const store = createStore(
rootReducer(history),
initialState,
composedEnhancers
)
export default store;
动作:
export function loadAllDataSuccess(data) {
return {
type: types.LOAD_DATA_SUCCESS,
data
}
}
// thunk
export function loadAllData() {
return function(dispatch) {
return getData().then((data) => {
dispatch(loadAllDataSuccess(data));
});
};
}
index.js:
store.dispatch(loadAllData());
ReactDOM.render((
<Provider store={store}>
<ConnectedRouter history={history}>
<App />
</ConnectedRouter>
</Provider>
), document.getElementById('root'));
我的Chrome浏览器表明错误是由ConnectedRouter history = {history}造成的。
我遵循了一些在线指南,现在我对如何使其运行感到非常困惑