如何解决'语法错误意外令牌,预期为“}”'

时间:2019-01-25 22:45:22

标签: react-native

我正在使用React Native编写应用程序。这是我第一次这样做。我熟悉功能contruct

直到现在一切正常,但是由于某种原因,代码无法编译并抛出此错误

  

SyntaxError:/ggProject/App.js:意外令牌,预期为“}”   (119:23)

我已经有一段时间试图找出问题所在了,但是我找不到错误。行119:23在构造函数的第一个"{"中。

class Cartas extends Component {
constructor(props) {
    super(props);
    state = {
        carta: 0
    };
}
nextCard = () => {
    var y = this.state.carta + 1;
    this.setState({carta: y })
    if(this.state.carta === 3) {Alert.alert('se activaron')}
}

displayCarta() {
    if(this.state.carta <= 2){
        if (this.state.carta%4 == 0) {
            return <CTodos players={this.props.players} changePage={this.props.changePage} next={this.nextCard}/>
        } else if (this.state.carta%4 == 1) {
            return <CSecuencia changePage={this.props.changePage} next={this.nextCard} />
        } else if (this.state.carta%4 == 2) {
            return <CPregunta  changePage={this.props.changePage} next={this.nextCard} />
        }
    }else {
        if (this.state.carta%4 == 0) {
            return <CTodos players={this.props.players} changePage={this.props.changePage} next={this.nextCard}/>
        } else if (this.state.carta%4 == 1) {
            return <CSecuencia changePage={this.props.changePage} next={this.nextCard} />
        } else if (this.state.carta%4 == 2) {
            return <CPregunta  changePage={this.props.changePage} next={this.nextCard} />
        }else if (this.state.carta%4 == 3) {
           return <CReto  changePage={this.props.changePage} next={this.nextCard} />
       }
    }
}
render() {
    return (
            this.displayCarta()
    )
}
}

2 个答案:

答案 0 :(得分:0)

根据代码段判断,前提是您尚未添加结束符},这是一种语法错误。它应该如下所示:

class Cartas extends Component {
  constructor(props) {
      super(props);

      this.state = {
        carta: 0
      };
  }
}

在项目中添加一个lint工具以及关系文本编辑器插件将帮助您实时获取这些语法错误。

答案 1 :(得分:-1)

我认为您的组件应该喜欢这个

class Cartas extends Component
    state = {
        carta: 0
    }
}

指针

  1. 您不使用构造函数进行初始化(至少他们没有在文档中指定这样做)
  2. 您无法通过this设置状态。您可以像上面一样先设置状态,然后再使用setState()函数设置状态