ReactJS 存储未注册

ReactJS Store not registered

本文关键字:注册 存储 ReactJS      更新时间:2023-09-26

我得到:

Error: Error: Store UserStore was not registered.(…)

在我的组件中:

import React from 'react';
import JobList from './JobList';
import RightPanel from './RightPanel';
import JobStore from '../../stores/JobStore';
import LoadJobsScreen from '../../actions/jobs-screen/LoadJobsScreen';
import UserStore from '../../stores/UserStore';
import LoadUsers from '../../actions/global/LoadUsers';
import Modal from 'react-modal';
export default class JobScreen extends React.Component {
    static contextTypes = {
        executeAction: React.PropTypes.func.isRequired,
        getStore: React.PropTypes.func.isRequired
    };
    componentWillMount() {
        this.displayName = 'JobScreen'
        this.state = {
            traderModalOpened: false,
            OFTModalOpened: false,
            users: this.context.getStore(UserStore).getUsers(),
        }
        this.context.getStore(UserStore).on('change', () => {
            this.setState({
                users: this.context.getStore(UserStore).getUsers()
            });
        });
        this.context.executeAction(LoadJobsScreen, this);
    }
    toggleTraderModal() {
        this.setState({
            traderModalOpened: !this.state.traderModalOpened
        });
        console.log(this.state.traderModalOpened);
    }
    toggleOFTModal() {
        this.setState({
            OFTModalOpened: !this.state.OFTModalOpened
        });
        console.log(this.state.OFTModalOpened);
    }

    render() {
        var users = [];
        this.state.users.forEach((user) => {
            users.push(
                <option>{user.id}</option>
            );
        });
return ( ...
        );
    }
}

有关店铺:

import { EventEmitter } from 'events';
class UserStore extends EventEmitter {
    constructor() {
        super();
        this.users = new Map();
    }
    handleJobsData(payload) {
        payload.data.jobs.forEach((user) => {
            this.users.set(user.id, user);
        });
        this.emit('change');
    }
    getUsers() {
        return this.users;
    }
}
UserStore.dispatchToken = null;
UserStore.handlers = {
    'RECEIVED_USERS_DATA': 'handleUsersData'
};
UserStore.storeName = 'UserStore';
export default UserStore;

我做错了什么?

我没有在app.js中注册我的商店,现在一切正常。