Wie rufe ich Daten aus der lokalen JSON-Datei ab, wenn ich native reagiere?


Antworten:


144

Seit React Native 0.4.3 können Sie Ihre lokale JSON-Datei folgendermaßen lesen:

const customData = require('./customData.json');

und greifen Sie dann wie bei einem normalen JS-Objekt auf customData zu.


Wird diese Syntax noch unterstützt? weil ich diese Syntax nicht in meinem Code verwenden kann.
Sohail Mohabbat Ali

1
Scheint mit React Native 0.26.2 für iOS zu funktionieren. Vielleicht möchten Sie mit überprüfen react-native -vund versuchen, die zu lesen package.json.
Peter

customData speichert nur die ersten 3500 Zeichen der Datei customData.json. Jede andere Möglichkeit, eine große Datei zu laden @peter
Akki

@Akki Teilen Sie es in mehrere kleinere Dateien?
Simon Forsberg

Es funktioniert perfekt - F: Warum kann ich stattdessen keine Importsyntax verwenden?
dod_basim

110

ES6 / ES2015 Version:

import customData from './customData.json';

könnte es irgendeinen Namen haben oder muss es seincustomData
farmcommand2

2
@ farmcommand2 Es kann ein beliebiger Name sein. import myJsonFile from './foobar.json';
PaulMest

1
Ich habe es gerade mit React Native 0.57 versucht und es sieht so aus, als ob die Erweiterung .json nicht erforderlich ist.
Manuel Zapata

1
@ ManuelZapata Das ist richtig. Wenn Sie das Suffix ausschließen, versucht der Modul-Resolver verschiedene Erweiterungen, bis er eine findet, die funktioniert. Weitere Infos hier: nodejs.org/api/modules.html#modules_all_together
PaulMest

17

Für ES6 / ES2015 können Sie direkt importieren wie:

// example.json
{
    "name": "testing"
}


// ES6/ES2015
// app.js
import * as data from './example.json';
const word = data.name;
console.log(word); // output 'testing'

Wenn Sie Typoskript verwenden, können Sie das JSON-Modul wie folgt deklarieren:

// tying.d.ts
declare module "*.json" {
    const value: any;
    export default value;
}



1

Schauen Sie sich diese Github-Ausgabe an:

https://github.com/facebook/react-native/issues/231

Sie versuchen, requireNicht-JSON-Dateien, insbesondere JSON, zu verwenden. Derzeit gibt es keine Methode, um dies zu tun. Sie müssen also entweder AsyncStorage wie bei @CocoOS erwähnt verwenden oder ein kleines natives Modul schreiben, um das zu tun, was Sie tun müssen.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.