代码之家  ›  专栏  ›  技术社区  ›  Min Htet Oo

从redux persist导入persistgate将导致“超级表达式必须为null或函数,而不是未定义”

  •  0
  • Min Htet Oo  · 技术社区  · 6 年前

    目前,我正在react redux应用程序中使用redux persist进行持久数据存储。我是根据 the documentation 是的。持久数据存储看起来不错,但是当我导入 PersistGate redux-persist/integration/react ,显示 Uncaught TypeError: Super expression must either be null or a function, not undefined 是的。有人能帮我吗?

    这是我的index.js:

    import React from "react";
    import ReactDOM from "react-dom";
    import { Provider } from "react-redux";
    import {createStore} from "redux";
    import reducers from "./reducers";
    import { persistStore, persistReducer } from 'redux-persist';
    import storage from 'redux-persist/lib/storage';
    import GG from './containers/gg';
    import { PersistGate } from 'redux-persist/integration/react';
    
    const persistConfig = {
      key: 'root',
      storage,
    }
    
    const persistedReducer = persistReducer(persistConfig, reducers);
    let store = createStore(persistedReducer);
    let persistor = persistStore(store);
    
    ReactDOM.render(
      <Provider store={store}>
      <GG/>
      </Provider>,
      document.querySelector(".container")
    );
    

    包装袋

    {
      "name": "redux-simple-starter",
      "version": "1.0.0",
      "description": "Simple starter package for Redux with React and Babel support",
      "main": "index.js",
      "repository": "git@github.com:StephenGrider/ReduxSimpleStarter.git",
      "scripts": {
        "start": "node ./node_modules/webpack-dev-server/bin/webpack-dev-server.js"
      },
      "author": "",
      "license": "ISC",
      "devDependencies": {
        "babel-core": "^6.2.1",
        "babel-loader": "^6.2.0",
        "babel-preset-es2015": "^6.1.18",
        "babel-preset-react": "^6.1.18",
        "webpack": "^1.12.9",
        "webpack-dev-server": "^1.14.0"
      },
      "dependencies": {
        "babel-preset-stage-1": "^6.1.18",
        "react": "^0.14.3",
        "react-dom": "^0.14.3",
        "react-redux": "^4.0.0",
        "redux": "^3.0.4",
        "redux-persist": "^5.10.0"
      }
    }
    

    谢谢你的关注。

    1 回复  |  直到 6 年前
        1
  •  1
  •   Andrew Li    6 年前

    这是您的react版本的问题。您的react指定版本, ^0.14.3 ,不包含, React.PureComponent ,父组件 PersistGate uses 是的。这会导致错误,因为超类 redux-persist 试图扩展, react.pure组件 不存在。这是因为 react.pure组件 已添加到React API in version 15.3 是的。升级react版本。

    推荐文章