В настоящее время я работаю над чтением локального файла в react-native и сталкиваюсь со следующей ошибкой:

TypeError:null is not an object(evaluating 'RNFSManager.RNFSFileTypeRegular')

Код, который я использую, взят прямо из документации для react-native-fs. , используя базовый пример из раздела примеров:

// require the module
var RNFS = require('react-native-fs');

// get a list of files and directories in the main bundle
RNFS.readDir(RNFS.MainBundlePath) // On Android, use "RNFS.DocumentDirectoryPath" (MainBundlePath is not defined)
  .then((result) => {
    console.log('GOT RESULT', result);

    // stat the first file
    return Promise.all([RNFS.stat(result[0].path), result[0].path]);
  })
  .then((statResult) => {
    if (statResult[0].isFile()) {
      // if we have a file, read it
      return RNFS.readFile(statResult[1], 'utf8');
    }

    return 'no file';
  })
  .then((contents) => {
    // log the file contents
    console.log(contents);
  })
  .catch((err) => {
    console.log(err.message, err.code);
  });

Если это поможет, я использую vs при написании этого на компьютере с Windows 10.

Я попытался сбросить свой кеш, переустановить react-native-fs и связать react-native-fs, ни один из них не решил проблему, и все это привело к одной и той же ошибке.

Буду очень признателен за любую помощь. Спасибо.

0
db1048 20 Дек 2019 в 18:24
Вы предлагаете разрешение на запись в приложение?
 – 
SmoggeR_js
20 Дек 2019 в 18:57
Я специально не давал на это разрешения. Но я использовал react-native для разработки других приложений, и у меня никогда не было проблем.
 – 
db1048
20 Дек 2019 в 21:23

1 ответ

В случае сообщения iOS «Собственный модуль не может быть нулевым», в сообщении Android «нуль не является объектом, оценивающим RNFSManager и т. д.»

Решение для iOS запускается pod install в каталоге iOS, а затем react-native run-ios для повторного запуска приложения.

Решение для Android: react-native link react-native-fs, затем react-native run-android для повторного запуска приложения.

1
Akhzar Nazir 24 Мар 2020 в 10:10