react-flux应用程序错误 - 即使已定义,也无法找到该函数

时间:2015-12-12 01:55:18

标签: reactjs-flux

我有一个反应组件 - coursePage.js

function getCourseInitState(){
    return {
    courses: CourseStore.getAllCourses()//courseStore is required in script
    };
}

var Courses = React.createClass({
    getInitialState: function(){
        return getCourseInitState();
    },

    render: function () {
        return (
                <div>
                <h1> Course </h1>
                <CourseList courses={this.state.courses} />
                </div>
        );
    }
});

行动档案-courseAction

var CourseAction = {
CourseList: function(){
    var courseList = CourseApi.getAllCourses();

    Dispatcher.dispatch({
        actionType: ActionTypes.COURSE_INITIALIZE,
        courseList: courseList
    });
}

商店文件 - courseStore

    var CourseStore = assign({}, EventEmitter.prototype, {

    addChangeListener: function(callback){
        this.on(CHANGE_EVENT, callback);
    },

    removeChangeListener: function(callback){
        this.removeListener(CHANGE_EVENT, callback);
    },

    emitChange: function(){
        this.emit(CHANGE_EVENT);
    },

    getAllcourses: function(){  //here is the function define
        return _courses;
    },

    getCourseById: function(id){
        return _.find(_courses, {id: id});
    }
});

    Dispatcher.register(function(action){
        switch(action.actionType){
            case ActionTypes.COURSE_INITIALIZE:
                _courses = action.CourseList;
                CourseStore.emitChange();
            break;
        }
    });

module.exports = CourseStore;
  • 在控制台中我得到“Uncaught TypeError:CourseStore.getAllCourses不是函数”

我不想直接在我的coursePage.js中调用api,所以我找到了这种初始化页面的方法,但它没有用。

(请注意 - 我是新手)根据我最近的学习动作文件必须始终调用API并将请求发送给State。我可以在componentWillMount函数的帮助下加载。但是,我想用这个来解决。如果没有错,那么它是更整洁,更可取的实施方式吗?

1 个答案:

答案 0 :(得分:0)

你有一个拼写错误 - &gt;商店和您调用getAllcourses

的组件中的getAllCourses
getAllCourses: function(){  //Should be getAllCourses instead of getAllcourses
    return _courses;
},