Javascript 函数外部的“return”问题
我目前正在尝试开发一个使用ES6语法的系统,尽管在编译时会出现错误 GameSettingsStore.js:函数外的“返回” 我目前掌握的代码是: 文件index.js 文件GameSettingsStore.jsJavascript 函数外部的“return”问题,javascript,node.js,reactjs,Javascript,Node.js,Reactjs,我目前正在尝试开发一个使用ES6语法的系统,尽管在编译时会出现错误 GameSettingsStore.js:函数外的“返回” 我目前掌握的代码是: 文件index.js 文件GameSettingsStore.js 我假设这个错误是因为我没有导出我的函数,尽管我不确定我该怎么做,因为我的AppDispatcher代码就是问题所在。导出或导出默认值而不是返回导出或导出默认值而不是返回您会收到错误,因为您的最后一行是返回,但它不在函数中。谁应该接收该值?我假设错误来自我没有导出函数的事实-不。错误
我假设这个错误是因为我没有导出我的函数,尽管我不确定我该怎么做,因为我的AppDispatcher代码就是问题所在。导出或导出默认值而不是返回导出或导出默认值而不是返回您会收到错误,因为您的最后一行是返回,但它不在函数中。谁应该接收该值?我假设错误来自我没有导出函数的事实-不。错误正是消息所说的。最后一行已经返回。它不在函数内。更改以导出默认游戏设置存储最后一行您打算如何处理返回的游戏设置存储区;代码行?您是否正在尝试导出该值,以便导入模块的人可以导入此值?您将收到错误,因为您的最后一行是返回,但它不在函数中。谁应该接收该值?我假设错误来自我没有导出函数的事实-不。错误正是消息所说的。最后一行已经返回。它不在函数内。更改以导出默认游戏设置存储最后一行您打算如何处理返回的游戏设置存储区;代码行?您是否正在尝试导出该值,以便导入模块的人可以导入该值?
import GameSettingsStore from '../stores/GameSettingsStore';
// 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;