使用Redux chrome扩展时"找不到商店"

Bok*_*oky 12 javascript redux

我有一个redux chrome扩展的问题.

我在configureStore.js文件中有以下代码:

import {createStore, applyMiddleware} from 'redux';
import rootReducer from '../reducers/index';
import thunk from 'redux-thunk';

export default function configureStore(initialState){
  return createStore(
    rootReducer,
    initialState,
    applyMiddleware(thunk),
    window.devToolsExtension ? window.devToolsExtension() : f => f
  );
}
Run Code Online (Sandbox Code Playgroud)

window.devToolsExtension ? window.devToolsExtension() : f => f教程中添加了类似内容.

但是当我尝试运行扩展时,我得到了

在此输入图像描述

编辑

import 'babel-polyfill';
import React from 'react';
import {render} from 'react-dom';
import {Router, browserHistory} from 'react-router';
import routes from './routes';
import '../node_modules/bootstrap/dist/css/bootstrap.min.css';
import './assets/sass/main.scss';
import '../node_modules/font-awesome/css/font-awesome.css';

import {loadCourses} from './actions/courseActions';
import {loadAuthors} from './actions/authorActions';
import {Provider} from 'react-redux';
import configureStore from './store/configureStore';

const store = configureStore();
store.dispatch(loadCourses());
store.dispatch(loadAuthors());

render(
  <Provider store={store}><Router history={browserHistory} routes={routes}/></Provider>, document.getElementById("app")
);
Run Code Online (Sandbox Code Playgroud)

有什么建议?

Bok*_*oky 24

我从这里得到了解决方案.

正确的代码是:

import {createStore, applyMiddleware, compose} from 'redux';
import rootReducer from '../reducers/index';
import thunk from 'redux-thunk';

export default function configureStore(initialState){
  return createStore(
    rootReducer,
    initialState,
    compose(
      applyMiddleware(thunk),
      window.devToolsExtension ? window.devToolsExtension() : f => f
    )
  );
}
Run Code Online (Sandbox Code Playgroud)


rob*_*ovg 13

好的,只需检查Redux Dev Tools的官方存储库,我发现他们建议使用__REDUX_DEVTOOLS_EXTENSION__而不是devToolsExtension使用.

所以在这次更新后,我的代码和de connectino与插件开始像魅力一样工作.

这里有一个示例代码,如果它可以帮助任

const enhancers = compose(
  window.__REDUX_DEVTOOLS_EXTENSION__ && window.__REDUX_DEVTOOLS_EXTENSION__()
  );

const store = createStore(
  rootReducer,
  defaultState,
  enhancers
);
Run Code Online (Sandbox Code Playgroud)

  • 谢谢@robertovg。我收到错误提示,撰写未定义。为了解决这个问题,我们需要从 redux 导入。示例: import { createStore, compose } from 'redux'; (2认同)