1. ホーム
  2. reactjs

[解決済み] React - 予想外のトークン、予想外の;

2022-02-17 02:18:26

質問

というエラーが投げられます。予期しないトークン、期待される; (9:16) これは、renderNumbers()関数の1行目を指しています。私の構文に何か問題があるのでしょうか?ここを変更すればうまくいくのか、少し混乱しています。

import React, { PropTypes } from 'react';
import {
  StyleSheet,
  View,
  Text,
  TouchableOpacity
} from 'react-native';

renderNumbers() {
  return this.props.numbers.map(n =>
    <Text>{n}</Text>
  );
}


export default class Counter extends React.Component {
  render() {
    return (
      <View style={styles.container}>
        <Text style={styles.appName}>
          Countly
        </Text>
        <Text style={styles.tally}>
          Tally: {this.props.count}
        </Text>
        <Text style={styles.tally}>
          Numbers: {this.props.numbers}
        </Text>
        <View>
          {this.renderNumbers()}
        </View>
        <TouchableOpacity onPress={this.props.increment} style={styles.button}>
          <Text style={styles.buttonText}>
            +
          </Text>
        </TouchableOpacity>
        <TouchableOpacity onPress={this.props.decrement} style={styles.button}>
          <Text style={styles.buttonText}>
            -
          </Text>
        </TouchableOpacity>
        <TouchableOpacity onPress={this.props.power} style={styles.button}>
          <Text style={styles.buttonText}>
            pow
          </Text>
        </TouchableOpacity>
        <TouchableOpacity onPress={this.props.zero} style={styles.button}>
          <Text style={styles.buttonText}>
            0
          </Text>
        </TouchableOpacity>
      </View>
    );
  }
}

Counter.propTypes = {
  count: PropTypes.number,
  numbers: PropTypes.func,
  increment: PropTypes.func,
  decrement: PropTypes.func,
  zero: PropTypes.func,
  power: PropTypes.func
};

const styles = StyleSheet.create({
  container: {
    flex: 1,
    justifyContent: 'center',
    alignItems: 'center',
    backgroundColor: '#F5FCFF'
  },
  appName: {
    fontSize: 20,
    textAlign: 'center',
    margin: 10
  },
  tally: {
    textAlign: 'center',
    color: '#333333',
    marginBottom: 20,
    fontSize: 25
  },
  button: {
    backgroundColor: 'blue',
    width: 100,
    marginBottom: 20,
    padding: 20
  },
  buttonText: {
    color: 'white',
    textAlign: 'center',
    fontSize: 20
  }
});

ありがとうございました。

どのように解決するのですか?

を使うべきではありません。 function renderNumbers() ? これは、次のように見えます。 renderNumbers はクラスのメソッドではありません。 Counter のように、コード内の個々の関数になります。

ブツブツ。 renderNumbers が2回定義されていましたが、これは合法であり、問題の原因ではありません。

編集してください。

を宣言したい場合 renderNumbers() として プロトタイプメソッド クラスの Counter のように、クラスの内部で定義します。

export default class Counter extends React.Component {

    renderNumbers() {
       ...
    }

    ...

}

それ以外の場合は、キーワード function を定義するために 機能 :

function renderNumbers() {
    ...
}

ES6の構文だけなんです。