函数外的“返回”问题

Cur*_*tis 1 javascript node.js reactjs

我目前正在尝试开发一个使用 ES6 语法的系统,但在编译时出现错误

GameSettingsStore.js:函数外的“返回”

我得到的当前代码是:

文件index.js

import GameSettingsStore from '../stores/GameSettingsStore';
Run Code Online (Sandbox Code Playgroud)

文件GameSettingsStore.js

// Packages
import _ from 'lodash';

// Modules
import AppDispatcher from '../dispatcher/AppDispatcher';
import { Constants } from '../constants/AppConstants';
import * as Events from '../lib/events';
import Clib from '../game-logic/clib';

const CHANGE_EVENT = 'change';

/*
 * Display Settings
 */
let _controlsSize = Clib.localOrDef('controlsSize', 'big');
let _graphMode = Clib.localOrDef('graphMode', 'graphics');
let _controlsPosition = Clib.localOrDef('controlsPosition', 'right');
let _leftWidget = Clib.localOrDef('leftWidget', 'players');

/*
 * HotKeys
 */
let _hotkeysActive = false;

/*
 * Ignore Clients
 */
const _ignoredClientList = JSON.parse(Clib.localOrDef('ignoredList', '{}'));

/*
 * Store
 */
const GameSettingsStore = _.extend({}, Events, {

  emitChange() {
    this.trigger(CHANGE_EVENT);
  },

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

  removeChangeListener(callback) {
    this.off(CHANGE_EVENT, callback);
  },

  _setGraphMode(graphMode) {
    _graphMode = graphMode;
    localStorage.graphMode = graphMode;
  },

  _setControlsSize(controlsSize) {
    _controlsSize = controlsSize;
    localStorage.controlsSize = controlsSize;
  },

  _toggleHotkeysState() {
    _hotkeysActive = !_hotkeysActive;
    localStorage.hotKeysActive = _hotkeysActive;
  },

  _ignoreUser(username) {
    _ignoredClientList[username.toLowerCase()] = { username };
    localStorage.ignoredList = JSON.stringify(_ignoredClientList);
  },

  _approveUser(username) {
    username = username.toLowerCase();
    if (_ignoredClientList[username]) {
      delete _ignoredClientList[username];
      localStorage.ignoredList = JSON.stringify(_ignoredClientList);
    }
  },

  getState() {
    return {
      graphMode: _graphMode,
      controlsSize: _controlsSize,
      controlsPosition: _controlsPosition,
      leftWidget: _leftWidget,
      hotkeysActive: _hotkeysActive
    };
  },

  getIgnoredClientList() {
    return _ignoredClientList;
  }

});

AppDispatcher.register((payload) => {
  const { action } = payload;

  switch (action.actionType) {
    case Constants.ActionTypes.SET_CONTROLS_SIZE:
      GameSettingsStore._setControlsSize(action.controlsSize);
      GameSettingsStore.emitChange();
      break;

    case Constants.ActionTypes.SET_GRAPH_MODE:
      GameSettingsStore._setGraphMode(action.graphMode);
      GameSettingsStore.emitChange();
      break;

    case Constants.ActionTypes.TOGGLE_HOYTKEYS_STATE:
      GameSettingsStore._toggleHotkeysState();
      GameSettingsStore.emitChange();
      break;

    case Constants.ActionTypes.IGNORE_USER:
      GameSettingsStore._ignoreUser(action.username);
      GameSettingsStore.emitChange();
      break;

    case Constants.ActionTypes.APPROVE_USER:
      GameSettingsStore._approveUser(action.username);
      GameSettingsStore.emitChange();
      break;

    default:
      GameSettingsStore.emitChange();
      break;

  }
  return true;
});

return GameSettingsStore;
Run Code Online (Sandbox Code Playgroud)

我假设错误来自我不是exporting我的函数这一事实,尽管AppDispatcher如果这是问题,我不确定我的代码会如何去做。

Bak*_*rov 6

exportexport default代替return