5

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 reactjs@0.13.3, react-router@0.13.3 and flux@2.0.3. Could anyone help me on this?

thangchung
  • 2,020
  • 2
  • 17
  • 28

2 Answers2

8

If you are using Babel you can use below

import { Dispatcher } from 'flux';
const dispatcher = new Dispatcher();
export default dispatcher;
Ajay Beniwal
  • 18,857
  • 9
  • 81
  • 99
3

You should export the Dispatcher as follows

import Flux from 'flux';
export default new Flux.Dispatcher;
Kelsadita
  • 1,038
  • 8
  • 21