Reagieren Native: require() mit Dynamischen String?
Habe ich gelesen, mehrere Beiträge über Themen, die die Menschen mit React Native und die require()
Funktion, wenn Sie versuchen zu erfordern eine dynamische Ressource wie:
Dynamische (fehl):
urlName = "sampleData.json";
data = require('../' + urlName);
vs. Statische (erfolgreich):
data = require('../sampleData.json');
Habe ich gelesen, bei einigen threads, dass dies einen Fehler in Reagieren Muttersprache und in anderen, das ist ein feature.
Gibt es eine neue Art erfordern eine dynamische Ressource, die in einer Funktion?
Related Posts (alle ziemlich alt zu Reagieren, Zeit):
- Importieren von Text aus lokalen json-Datei in Reagieren nativen
- React Native - Dynamisch-Liste/Benötigen Dateien In Das Verzeichnis
- React Native - Bild Benötigen-Moduls über Dynamische Namen
- Reagieren Muttersprache: Verwendung von require(Pfad) mit dynamischen urls?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Als ich gehört habe, reagieren die
require()
verwendet nur statische url keine Variablen, das bedeutet, dass Sie zu tun habenrequire('/path/file')
, werfen Sie einen Blick auf diese issue auf github und diese eine weitere alternative Lösungen, es gibt ein paar andere Möglichkeiten, es zu tun!für e.g
dann
aus diesem Antwort
Hier ist meine Lösung.
Setup
Datei-Struktur:
In
index.js
habe ich diese:In meinem
SearchableList.js
- Komponente habe ich dann importiert die Bilder, die Komponente wie folgt:Dann habe ich eine neue Funktion
imageSelect
in meine Komponente:Dann in meine Komponenten
render
- Funktion, die ich nenne diese neueimageSelect
- Funktion dynamisch zuweisen des gewünschten Bildes basierend auf dem Wert in derthis.state.network
:Übergebenen Wert in die imageSelect Funktion könnte jede dynamische Zeichenfolge. Ich habe gerade entschieden haben, es in den Staat und erst dann übergeben.
Ich hoffe, diese Antwort hilft. 🙂
Wenn Sie brauchen, um zu wechseln zwischen mehreren lokal gespeicherte Bilder, können Sie auch auf diese Weise:
In diesem snippet, das ich Variablen zu ändern
titleImg
undtextColor
je nach prop. Ich habe dieses snippet direkt inrender()
Methode.Sind Sie mit einem Modul bundler wie webpack?
Wenn ja, können Sie versuchen
require.ensure()
Finden Sie unter: https://webpack.js.org/guides/code-splitting/#dynamic-imports
Lesen durch die Dokumentation, die ich gefunden habe, eine Arbeit zu beantworten und ich bin in der Lage, dynamische Bilder, die in den docs Sie bezeichnen es als Netzwerk Bilder hier
https://facebook.github.io/react-native/docs/images#network-images
Nicht sicher, ob dies angewandt werden kann, um andere Dateitypen, aber als Sie die Liste benötigen mit nicht-Bild-Typen
Müssten Sie die uri: - Aufruf
Für mich, ich habe Bilder arbeiten dynamisch mit diesem
Versuchen, die Lösung erwähnt in diese thread für Android. Dies löst das Problem aber leider nur für android.
Aber stellen Sie sicher, dass Sie
react-native run-android
nach jedem update. Sonst werden die hinzugefügten Bilder erscheinen nicht in der app.