Flux threw Dispatcher is not a constructor

2.2k Views Asked by At

I try to use jspm with reactjs. I worked fine. But when I integrated it with flux package from npm. Then it always threw Dispatcher is not a constructor error. My code as below

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);
    }
}

I used [email protected], [email protected] and [email protected]. Could anyone help me on this?

2

There are 2 best solutions below

0
On

You should export the Dispatcher as follows

import Flux from 'flux';
export default new Flux.Dispatcher;
0
On

If you are using Babel you can use below

import { Dispatcher } from 'flux';
const dispatcher = new Dispatcher();
export default dispatcher;