如果未安装 Redux DevTools 扩展,则 Redux 应用程序无法运行

rah*_*all 4 reactjs redux react-redux redux-devtools-extension create-react-app

我遵循了这里的指南:https ://redux-observable.js.org/docs/basics/SettingUpTheMiddleware.html(部分:Redux DevTools)

商店的配置方式如下:

// @flow

import { createStore, compose, applyMiddleware } from 'redux';
import { createEpicMiddleware } from 'redux-observable';
import { createReducer } from './reducer';
import { epic } from './epic';

const initialState = {};

const configureStore = () => {
  const epicMiddleware = createEpicMiddleware(epic);
  const composeEnhancers = window.__REDUX_DEVTOOLS_EXTENSION_COMPOSE__ || compose;
  const enhancers = composeEnhancers(applyMiddleware(epicMiddleware));
  const store = createStore(createReducer(), initialState, enhancers);
  return store;
};

export { configureStore };
Run Code Online (Sandbox Code Playgroud)

但是,如果我没有安装 Redux Devtools 扩展,我的 React 应用程序(使用 CRA 引导)将无法工作。

有人可以告诉我我做错了什么吗?

缺少扩展的错误日志:https : //pastebin.com/qzcbXCYQ

编辑:我是个白痴。该商店定义在两个文件中,我没有更改从中导入它的那个文件。清理了重复项,它按预期工作。

Tom*_*Tom 7

为了使事情更容易,您可以使用redux-devtools-extensionnpm 中的包。

要安装它,请运行:

npm install --save-dev redux-devtools-extension
Run Code Online (Sandbox Code Playgroud)

并像这样使用:

// @flow

import { createStore, compose, applyMiddleware } from 'redux';
import { createEpicMiddleware } from 'redux-observable';
import { createReducer } from './reducer';
import { epic } from './epic';

import { composeWithDevTools } from 'redux-devtools-extension';


const initialState = {};

const configureStore = () => {
  const epicMiddleware = createEpicMiddleware(epic);
  const enhancers = composeEnhancers(applyMiddleware(epicMiddleware));
  const store = createStore(createReducer(), initialState, composeWithDevTools(
      applyMiddleware(epicMiddleware),
      // other store enhancers if any
));
  return store;
};

export { configureStore };
Run Code Online (Sandbox Code Playgroud)

  • 如果已经在 Chrome 中安装了扩展程序并且不希望 NPM 它? (6认同)