函数外部的“返回”问题

柯蒂斯

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

GameSettingsStore.js:在函数外部“返回”

我现在得到的代码是:

文件index.js

import GameSettingsStore from '../stores/GameSettingsStore';

档案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;

我假设错误是由于我不是exporting我的函数而引起的,尽管我不确定由于这是我的AppDispatcher代码,我将如何执行此操作

巴赫蒂亚尔·穆扎克帕罗夫(Bakhtiiar Muzakparov)

exportexport default代替return

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章