3

これが私の店の作り方です

import { createStore, applyMiddleware } from 'redux';
import thunkMiddleware from 'redux-thunk';
import { routerMiddleware } from 'react-router-redux';
import rootReducer from '../reducers';

const debugware = [];
if (process.env.NODE_ENV !== 'production') {
  const createLogger = require('redux-logger');
  debugware.push(createLogger({
    collapsed: true
  }));
}

export default function configureStore(history, initialState) {
  const store = createStore(
    rootReducer,
    initialState,
    window.devToolsExtension ? window.devToolsExtension() : f => f,
    applyMiddleware(thunkMiddleware, routerMiddleware(history), ...debugware),
  );

  if (module.hot) {
    // Enable Webpack hot module replacement for reducers
    module.hot.accept('../reducers', () => {
      const nextRootReducer = require('../reducers/index').default;
      store.replaceReducer(nextRootReducer);
    });
  }

  return store;
}

しかし、アプリが機能しなくなり、その理由がわかりました。任意の提案をお願いします。

4

2 に答える 2

4

これを試すことができます:

import { createStore, applyMiddleware, compose } from 'redux';

const store = createStore(
  rootReducer,
  initialState, 
  compose(
    applyMiddleware(thunkMiddleware, routerMiddleware(history), ...debugware),
    window.devToolsExtension ? window.devToolsExtension() : f => f
  )
);
于 2016-07-20T07:07:54.580 に答える
1

DevTools のエンハンサーは常に構成の最後にある必要があるため、他のミドルウェアとエンハンサーについて認識します。

さらに、アクションをリモートでディスパッチする場合は、以下も追加する必要があります。

if (window.devToolsExtension) window.devToolsExtension.updateStore(store)

トラブルシューティングに示されているとおりです。

于 2016-08-05T09:13:23.470 に答える