5

我尝试将 jspm 与 reactjs 一起使用。我工作得很好。但是当我将它与来自 npm 的通量包集成时。然后它总是抛出Dispatcher is not a constructor错误。我的代码如下

AppDispatcher.js

import Flux from 'flux';
export default new Flux.Dispatcher();

StoreBase.js

'use strict';

import {EventEmitter} from 'events';
import AppDispatcher from '../dispatchers/AppDispatcher';

const CHANGE_EVENT = 'change';

export default class BaseStore extends EventEmitter {
    constructor() {
        super();
    }

    subscribe(actionSubscribe) {
        this._dispatchToken = AppDispatcher.register(actionSubscribe());
    }

    get dispatchToken() {
        return this._dispatchToken;
    }

    emitChange() {
        this.emit(CHANGE_EVENT);
    }

    addChangeListener(cb) {
        this.on(CHANGE_EVENT, cb)
    }

    removeChangeListener(cb) {
        this.removeListener(CHANGE_EVENT, cb);
    }
}

我使用了 reactjs@0.13.3、react-router@0.13.3 和 Flux@2.0.3。有人可以帮我吗?

4

2 回答 2

8

如果你使用 Babel,你可以在下面使用

import { Dispatcher } from 'flux';
const dispatcher = new Dispatcher();
export default dispatcher;
于 2015-06-24T09:49:23.670 回答
3

Dispatcher您应该按如下方式导出

import Flux from 'flux';
export default new Flux.Dispatcher;
于 2015-06-24T06:34:58.350 回答