Как я могу хранить локальные файлы, такие как JSON, а затем получать данные из контроллера?
Ответы:
Начиная с React Native 0.4.3 вы можете читать свой локальный файл JSON следующим образом:
const customData = require('./customData.json');
а затем получить доступ к customData как к обычному объекту JS.
react-native -v
и попробовать прочитать файл package.json
.
Версия ES6 / ES2015:
import customData from './customData.json';
customData
import myJsonFile from './foobar.json';
Для ES6 / ES2015 вы можете импортировать напрямую, например:
// example.json
{
"name": "testing"
}
// ES6/ES2015
// app.js
import * as data from './example.json';
const word = data.name;
console.log(word); // output 'testing'
Если вы используете машинописный текст, вы можете объявить модуль json, например:
// tying.d.ts
declare module "*.json" {
const value: any;
export default value;
}
Использовать это
import data from './customData.json';
возможно, вы могли бы использовать AsyncStorage setItem и getItem ... и сохранить данные в виде строки, а затем использовать парсер json для преобразования его снова в json ...
Взгляните на эту проблему Github:
https://github.com/facebook/react-native/issues/231
Они пытаются require
использовать файлы, отличные от JSON, в частности JSON. В настоящее время нет способа сделать это, поэтому вам либо нужно использовать AsyncStorage, как упоминалось в @CocoOS, либо вы можете написать небольшой собственный модуль, чтобы делать то, что вам нужно.
Следующие способы получить локальный файл JSON:
Версия ES6 :
import customData from './customData.json';
или import customData from './customData';
Если это внутри .js
файла, а не .json
импортировать как -
import { customData } from './customData';
для дополнительных разъяснений / понимания обратитесь к примеру - Живая рабочая демонстрация