webentwicklung-frage-antwort-db.com.de

Modul kann in reaktiver App nicht aufgelöst werden

Ich bekomme einen Fehler in React Native, der besagt, dass ein Modul nicht aufgelöst werden kann. Es heißt, dass ein bestimmter Ordner nicht existiert, der Pfad jedoch nicht genau ist. Es sagt mir, dass Directory /Users/user/Desktop/RNApp/app/app/containers nicht existiert. Ich habe keine Ahnung, woher diese zweite App im Pfad kommt. Mein Verzeichnis sieht so aus 

 enter image description here

So exportiere ich meine Containerkomponenten in app/containers/index.js 

export RNAppNavigator from './Navigator/RNAppNavigator'
export SplashContainer from './Splash/SplashContainer'
export AppContainer from './App/AppContainer'

Also sollte ich sie wie import {AppContainer} from '~/containers korrekt importieren können? Ich habe kein Problem mit anderen Komponenten. Nur die AppContainer

Vielen Dank! 

11
maxwellgover

react-native start --reset-cache hat das Problem gelöst. https://github.com/facebook/react-native/issues/1924

51
maxwellgover

Ich habe den Willen verloren, über diesen Fehler zu leben, und RN hat mir gesagt, dass eine importierte Datei ./Foo Nicht existiert hat, als sie genau dort war!

Der eigentliche zugrunde liegende Fehler war kein Tippfehler, aber tatsächlich eine andere Datei, die ./Foo Importiert hat.

Achtung. Wenn Sie JSX irgendwo schreiben (zB in ./Bar):

<Bar>...</Bar>

dann musst du haben:

import * as React from 'react' (Oder ähnlich)

in dieser Datei vorhanden (./Bar).

Wenn der syntaktische Zucker (spitze Klammern) transpiliert ist, spuckt er naiv etwas aus wie:

React.createComponent(...)

Und wenn React nicht explizit importiert wurde, ist diese Referenz ungültig, sodass die Auswertung dieser abhängigen Datei anschließend fehlschlägt.

Leider führt dies dazu, dass ./Foo (Sowie ./Bar) In Ihrer App nicht verfügbar ist und RN daher nicht hilfreiche Dinge wie module not found Und Indeed, none of these files exist Sagt. .

Ich hoffe, das hilft.

ps. Sie können auch ein ähnliches Elend erleben, wenn Sie zirkuläre Abhängigkeiten zwischen Dateien haben! Was für ein Spaß!

3
Darius

Versuchen Sie anhand Ihrer Ordnerstruktur Folgendes in index.js zu importieren:

import { AppContainer } from './App/AppContainer';

Wenn Sie einen benannten Export verwenden, tun Sie Folgendes:

export class AppContainer [...]

Wenn Sie einen Standardexport verwenden, z.

export default class AppContainer [...]

Die Objektzerstörung wird fehlschlagen. Sie müssen stattdessen tun:

import AppContainer from './App/AppContainer';
3
max23_

Stellen Sie sicher, dass das Modul in package.json definiert ist. Verwenden Sie npm install und versuchen Sie es mit react-native link.

1
ashwath hegde

Ich hatte genau das gleiche Problem - Fix war babel-preset-react-native-stage-0 anstelle von babel-preset-react-native.

1
Andrew Montague

Wenn Sie ähnliche Probleme mit reinen Komponenten oder Klassen haben, stellen Sie sicher, dass Sie die Erweiterung .js anstelle von .jsx verwenden.

1
Pablo Darde

Ich konnte dieses Problem durch Hinzufügen einer Dateierweiterung '.js' lösen. Ich habe Intellij verwendet und eine js-Datei erstellt, diese hatte jedoch keine Dateierweiterung. Als ich einen Refraktor umbenannte und meine Komponente von 'List' in 'List.js' umwandelte, reagierte sie nativ und wusste dann, wie sie aufgelöst werden konnte. 

0
Grez.Kev

Hardware -> Alle Inhalte und Einstellungen löschen .__ erledigte den Job für mich (andere Dinge nicht).

0
illya yurkevich

Es sieht so aus, als ob Ihr Fehler von der äußeren index.js-Datei stammt, nicht von dieser. Importieren Sie dieses als './app/containers'? weil es nur "./container" sein sollte

0
Matt Aft

Bei mir mit expo musste ich expo einfach neu starten. ctrl + c und yarn start oder expo start und die Ausführung auf dem ios-Simulator oder Ihrem Gerät, je nachdem, mit welchem ​​Test Sie arbeiten.

0
Overcomer

Wenn Ihr Dateipfad korrekt ist, überprüfen Sie, ob eine Datei enthält

import React from './node_modules/react';

ersetzen Sie es durch

import React, { Component } from 'react';
0
Brijesh Shiroya