如何使用ES6语法解决React Native中的“Unexpected token,expected;(44:33)”

时间:2017-01-08 23:45:33

标签: ios syntax react-native ecmascript-6

我正在努力构建一个简单的宾果游戏,以便使用React-Native在iOS和Android上完成家务。我是JS的新手,曾经有过Java和Python方面的经验,所以我偏向于使用ES6语法,这种语法对上述语言有一些熟悉的结构。

我遇到了一个语法错误,我无法在我在这里粘贴的文件中识别(这是该文件的完整代码)。我从iOS模拟器获取此文件的错误是:

  

意外的令牌,预期; (44:33)

只是为了更容易绑定到第44行(我相信(44:33)意味着第44行第33个字符)我在Atom中看到第44行如下所示。

_createPlayerTabs(playerCount) {

我已经在谷歌,Facebook React Native网站上做了尽可能多的研究,尽可能在这里,但由于谷歌不会将分号识别为合法的搜索令牌,因此非常困难:(。我怀疑我正在进行某种排序基于假设JS函数像Python或Java一样的错误,但是你们可以提供有关具体错误的任何帮助或者我正在做出的概念性错误将会非常感激。

'use strict'
import React from 'react';

import {
  View,
  Text,
  StyleSheet,
  TextInput,
  TouchableOpacity,
  Picker,
} from 'react-native';

import {
  Actions,
} from 'react-native-router-flux';

import {
  TabViewAnimated,
  TabBarTop,
} from 'react-native-tab-view';

import GlobalStyles from '../../styles/GlobalStyles';
import BingoBoard from '../../components/BingoBoard';

class Player extends React.Component {
  constructor(props){
    super(props);
    this.state = {
      index: 0,
      routes: this._createPlayerTabs(this.props.players),
    };
  }

  _setupPlayers(playerCount, boardSize, winCondition) {
    players = []
    for (var x = 1; x <= playerCount; x++) {
      tempBoard = new BingoBoard(boardSize, winCondition);
      players.push('Player '.concat(x.toString()) : {
        name: "",
        board: tempBoard,
      });
  }

  _createPlayerTabs(playerCount) {
    playerList = [];
    for (var x = 1; x <= playerCount; x++) {
      playerList.push({
        key: x.toString(),
        title: "Player ".concat(x.toString()),
      });
    }
    return playerList;
  }

  _renderScene({ route }) {
    return
      <View style={[GlobalStyles.container, {paddingTop: 500}]}>
        <Text>
          {route.title}
        </Text>
      </View>;
  }

  _renderHeader(props) {
    return <TabBarTop {...props} />;
  }

  _handleChangeTab = (index) => {
    this.setState({ index });
  }

  render() {
     return(
       <View style={GlobalStyles.container}>
         <TabViewAnimated
           style={GlobalStyles.container}
           navigationState={this.state}
           renderScene={this._renderScene}
           renderHeader={this._renderHeader}
           onRequestChangeTab={this._handleChangeTab}/>
         <View style={GlobalStyles.bottomBar}>
             <TouchableOpacity onPress={() => (
                   Actions.activechore({this.state.players})
               )}>
               <Text style={GlobalStyles.h2}>
                 Next
               </Text>
             </TouchableOpacity>
           </View>
       </View>
     );
  }
}

export default Player;

1 个答案:

答案 0 :(得分:1)

for中的_setupPlayers循环缺少其结束},因此它尝试将_createPlayerTabs(playerCount) {解析为语句,并失败。