繁体   English   中英

未捕获的TypeError:超级表达式必须为null或函数,且未定义(React.js,Flux,ES6)

[英]Uncaught TypeError: Super expression must either be null or a function, not undefined (React.js, Flux, ES6)

我一直在将一个简单的React项目从ES5转换为ES6、7,但是遇到了一个问题。 打开index.html时出现此错误: 在此处输入图片说明

我研究了一些常见的修复方法:

  • 更新React

(15应该拥有完整的ES6支持吗?)

在此处输入图片说明

  • 导入或循环依存关系中的拼写错误

resultConstants.js

export const RESULTS = {
  RECEIVED_SEARCH: "RECEIVED_SEARCH",
  RECEIVED_RESULTS: "RECEIVED_RESULTS"
};

dispatcher.js

import { Dispatcher } from 'flux';

const AppDispatcher = new Dispatcher();

export default AppDispatcher;

但是我仍然没有真正看到这个问题。 这是引起问题的商店。

import AppDispatcher from '../dispatcher/dispatcher';
import { RESULTS } from '../constants/resultConstants';
import { FluxStore } from 'flux';

let _query = 'restaurant',
    _results = [];

const _mapOptions = {
  ...
};

class ResultStore extends FluxStore {
  query() {
    return _query;
  }

  mapOptions() {
    return _mapOptions;
  }

  all() {
    return _results.slice(0, 9);
  }

  __onDispatch(payload) {
    switch(payload.type) {
      case RESULTS.RECEIVED_SEARCH:
        _resetQuery(payload.search.query)
        _resetCenter(payload.search.center);
        resultStore.__emitChange();
        break;
      case RESULTS.RECEIVED_RESULTS:
        _resetResults(payload.results);
        resultStore.__emitChange();
        break;
      default:
        return;
    }
  }
}

function _resetQuery (query) {
  _query = query;
}

function _resetCenter (center) {
  _mapOptions.center = center;
};

function _resetResults (results) {
  _results = results;
};

export const resultStore = new ResultStore(AppDispatcher);

为了清楚起见,即使我包含以下代码段:

constructor() {
  super();
}

它仍然会出现此错误。

问题

  1. 出现此错误的其他原因有哪些?
  2. 我的ES6怎么样? (建设性的批评表示赞赏)

显然,从不存在的类扩展类时,没有错误。 因此,当super被调用但没有父对象时,会出现以下错误:Uncaught TypeError:Super表达式必须为null或函数,且未定义。

通常是由于扩展您拼写错误或由于顺序而导致您未加载的类引起的(扩展类必须写在扩展类下面)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM