Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Flux threw Dispatcher is not a constructor

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?

like image 756
thangchung Avatar asked Jun 24 '15 06:06

thangchung


2 Answers

If you are using Babel you can use below

import { Dispatcher } from 'flux';
const dispatcher = new Dispatcher();
export default dispatcher;
like image 79
Ajay Beniwal Avatar answered Nov 14 '22 11:11

Ajay Beniwal


You should export the Dispatcher as follows

import Flux from 'flux';
export default new Flux.Dispatcher;
like image 35
Kelsadita Avatar answered Nov 14 '22 12:11

Kelsadita