Website-Suche

reactjs - React native Fehler: JSX-Elementtyp 'AppLoading' hat keine Konstruktor- oder Aufrufsignaturen?


Ich erstelle eine React Native Expo-Anwendung und versuche, einige benutzerdefinierte Schriftarten zu importieren. Ich möchte, dass die App eine AppLoading-Komponente rendert, wenn die Schriftarten geladen werden. Wenn ich sie jedoch in den Code einfüge und ausführe, gibt sie einen Fehler zurück, der besagt:

JSX element type 'AppLoading' does not have any construct or call signatures.

Code :

// Importing packages
import { StyleSheet, View } from "react-native";
import React, { useState } from "react";
import redux, { createStore } from "redux";
import { Provider } from "react-redux";
import reducers from "./redux/index";
import AppLoading from "expo";
import Router from "./Router";
import loadFonts from "./fonts";

// App component
const App:React.FC = () => {
  // Redux store
  const store: redux.Store = createStore(reducers);

  // State
  let [loaded, setLoaded] = useState(false);

  if (loaded) {
    // Render app
    return (
      <React.StrictMode>
        <Provider store={store}>
          <View style={styles.container}>
            {/* Router */}
            <Router />
          </View>
        </Provider>
      </React.StrictMode>
    );
  } else {
    return (
      <AppLoading startAsync={loadFonts} onFinish={() => setLoaded(true)} />
    );
  }
};

// Export app
export default App;

Danke!

Antwort #1

import AppLoading from "expo";

Das würde voraussetzen, dass AppLoading der Standardexport des gesamten Expo-Pakets ist, was definitiv nicht der Fall ist.

Laut der Dokumentation müssen Sie AppLoading so importieren:

import AppLoading from 'expo-app-loading';