Синтаксическая ошибка Неожиданный токен, React Native

1

У меня есть экран Login в Login. Когда я нажимаю на синий текст, я хочу, чтобы он перешел к экрану Register. Тем не менее, он всегда показывает мне ту же Syntax Error: Unexpected Token.

import React, { Component } from 'react';
import {
  ScrollView,
  Text,
  TextInput,
  View,
  Button
} from 'react-native';
import { StackNavigator } from 'react-navigation';
import Register from './src/screens/Register';

export default class Login extends Component {
static navigationOptions = {
  title: 'Welcome',
}

navigateToRegister = () => {
  this.props.navigation.navigate('Register');
}

render() {
  return (
      <ScrollView style={{padding: 20}}>
          <Text
              style={{fontSize: 27}}>
              Login
          </Text>
          <TextInput placeholder='Username' />
          <TextInput placeholder='Password' />
          <View style={{margin:7}} />
          <Button
                  onPress={this.props.onLoginPress}
                  title="Submit"
              />
          <Text style={{color: 'blue'}}
              onPress={ this._navigateToRegister }
              Register
          </Text>
          </ScrollView>
      );

}
}
const App = StackNavigator({
  Login: { screen: Login },
  Register: { screen: Register },
  Secured: { screen: Secured },
});

AppRegistry.registerComponent('App', () => App);
  • 0
    Просто исправьте имя метода navigateToRegister onPress={ this.navigateToRegister } оно будет работать нормально
Теги:
react-native
react-native-ios

2 ответа

1
Лучший ответ

у вас есть и синтаксическая ошибка в коде.

второй последний текст не имеет закрывающего углового кронштейна >

import React, { Component } from "react";
import { ScrollView, Text, TextInput, View, Button } from "react-native";
import { StackNavigator } from "react-navigation";
import Register from "./src/screens/Register";

export default class Login extends Component {
  static navigationOptions = {
    title: "Welcome"
  };

  navigateToRegister = () => {
    this.props.navigation.navigate("Register");
  };

  render() {
    return (
      <ScrollView style={{ padding: 20 }}>
        <Text style={{ fontSize: 27 }}>Login</Text>
        <TextInput placeholder="Username" />
        <TextInput placeholder="Password" />
        <View style={{ margin: 7 }} />
        <Button onPress={this.props.onLoginPress} title="Submit" />
        <Text
          style={{ color: "blue" }}
          onPress={this._navigateToRegister}
          Register
        />
      </ScrollView>
    );
  }
}
const App = StackNavigator({
  Login: { screen: Login },
  Register: { screen: Register },
  Secured: { screen: Secured }
});

AppRegistry.registerComponent("App", () => App);

вы можете настроить prettier и eslint, они предоставят вам синтаксическую ошибку прямолинейного кода редактирования, так что вам не нужно будет появляться время на поиск подобных ошибок. Это хорошее руководство по настройке всего

0

Я столкнулся с ошибками в вашем коде

  1. Вы использовали функцию this._navigateToRegister в onPress и определили функцию navigateToRegister как функцию.

  2. И вы забыли закрыть тег Text

<Text
    style={{ color: "blue" }}
    nPress={this._navigateToRegister}>

Ещё вопросы

Сообщество Overcoder
Наверх
Меню