Ошибка типа Javascript: неопределенный не является конструктором (оценка ‘new _Team.GameTeam(‘имя’, ‘null’)’)

#javascript #reactjs #react-native #constructor #expo

Вопрос:

Я продолжаю получать ошибку типа всякий раз, когда пытаюсь скомпилировать в React Native. Вот класс, экземпляр которого я пытаюсь создать:

 class GameTeam {
    constructor(name, logoLocation)
    {
        this.name = name;
        this.logoLocation = logoLocation;
    };

    getTeamName() {
        return this.name;
    }

    getTeamLogoLocation() {
        return this.logoLocation
    }
}
 

и я просто творю с помощью:

 const home = new GameTeam('name', 'null');
 

Я также попытался изменить const на var, но это ничего не дало.

Если это вообще поможет решить проблему, вот основной файл

 import { GameTeam } from './objects/Team'
import React from 'react';
import { Image, StyleSheet, Text, View } from 'react-native';
import { useFonts } from 'expo-font'
import { VersusScore } from './components/VersusScore';

export default function App() {
  const home = new GameTeam('Tigers', 'null');
  const away = new GameTeam('Raiders', 'null');
  return (
    <View style={mainStyles.container}>
      <View style={mainStyles.topBar}>
        <Image style={mainStyles.navIcon_small} source={require('./assets/Icons/Inactive/Settings_Icon.png')} />
        <Text style={mainStyles.Title}>BRC</Text>
        <Image style={mainStyles.navIcon_small} source={require('./assets/Icons/Inactive/Announcements_Icon.png')} />
      </View>
      <VersusScore homeTName={home} awayTName={away} />
    </View>
  );
}
 

Ответ №1:

Единственное отличие, которое я видел в этом и документах, заключается в том, что в конце конструктора есть;, который может не выдавать синтаксическую ошибку, а также может блокировать его работу

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Classes

Комментарии:

1. Я вынул это и, к сожалению, все еще получаю ошибку

Ответ №2:

Оказывается, мне нужно было изменить class GameTeam на export default class GameTeam в первом файле, так как это был отдельный файл, теперь он выглядит так:

 export default class GameTeam {
    constructor(name, logoLocation)
    {
        this.name = name;
        this.logoLocation = logoLocation;
    }

    getTeamName() {
        return this.name;
    }

    getTeamLogoLocation() {
        return this.logoLocation
    }
}