Javascript 错误获取';未捕获错误:操作必须是普通对象。使用自定义中间件进行异步操作;雷杜·图恩

Javascript 错误获取';未捕获错误:操作必须是普通对象。使用自定义中间件进行异步操作;雷杜·图恩,javascript,reactjs,redux,redux-thunk,Javascript,Reactjs,Redux,Redux Thunk,我试着写下面的代码。但redux thunk不起作用。 你知道怎么解决吗? 当我执行此代码时,它可能会出现此错误。 createStore.js:113未捕获错误:操作必须是普通对象。使用自定义中间件进行异步操作。 但我已经安装了redux thunk。为什么会发生这种错误 index.js import { createDevTools } from 'redux-devtools'; import LogMonitor from 'redux-devtools-log-monitor'; i

我试着写下面的代码。但redux thunk不起作用。 你知道怎么解决吗? 当我执行此代码时,它可能会出现此错误。
createStore.js:113未捕获错误:操作必须是普通对象。使用自定义中间件进行异步操作。
但我已经安装了redux thunk。为什么会发生这种错误

index.js

import { createDevTools } from 'redux-devtools';
import LogMonitor from 'redux-devtools-log-monitor';
import DockMonitor from 'redux-devtools-dock-monitor';
import React from 'react';
import ReactDOM from 'react-dom';
import { createStore, combineReducers, applyMiddleware, compose } from 'redux';
import { Provider } from 'react-redux';
import { Router, Route, IndexRoute, browserHistory } from 'react-router';
import { syncHistoryWithStore, routerReducer } from 'react-router-redux';
import thunk from 'redux-thunk';
import * as storage from './persistence/storage';
import randomToken from './utlis/random';
import * as reducers from './reducers';
import {
  App,
  Home
} from './components';

const reducer = combineReducers({
  ...reducers,
  routing: routerReducer
});

if (!storage.get('token')) {
  storage.put('token', randomToken());
}

const initialState = {
  application: {
    token: storage.get('token')
  }
};

const DevTools = createDevTools(
  <DockMonitor toggleVisibilityKey="ctrl-h" changePositionKey="ctrl-q">
    <LogMonitor theme="tomorrow" preserveScrollTop={false} />
  </DockMonitor>
);

const store = createStore(
  reducer,
  initialState,
  compose(
    applyMiddleware(
      thunk
    ),
    DevTools.instrument()
  )
);
const history = syncHistoryWithStore(browserHistory, store);

ReactDOM.render(
  <Provider store={store}>
    <div>
      <Router history={history}>
        <Route path="/" component={App}>
          <IndexRoute component={Home}/>
        </Route>
      </Router>
    </div>
  </Provider>,
  document.getElementById('app')
);
import React from 'react';
import { connect } from 'react-redux';
import * as actions  from '../actions/cityForcast';

export class Home extends React.Component {
  constructor (props, context) {
    super(props, context);
  }

  componentWillMount () {
    this.props.dispatch(actions.search(this.props.token));
  }

  render() {
    return (
      <div>
        <button onClick={() => actions.search()}>Search</button>
      </div>
    );
  }
}

export default connect(({ application, cityForecast }) => ({ application, cityForecast }))(Home);enter code here
export function search(token) {
  return dispatch => {
    console.log(token);
  };
}

我可以自己解决这个问题。我还需要安装redux thunk和DevDependence