ReactNative: Uncaught TypeError: Невозможно прочитать свойство 'forEach' из неопределенного при построении демонстрации KitchenSink - PullRequest
0 голосов
/ 25 октября 2018

Я пытаюсь скомпилировать демо «кухонная раковина» для «реакции-натива»:

NativeBase-KitchenSink

, и я следовалследующие ссылки уже:

Решение для «React native: проект Android не найден. Может быть, сначала запустит реагирующий native android?»

Решение для «Expo»:Не удается найти модуль LogReporter "

То есть от установки 'npm' до установки необходимых инструментов с использованием 'Yarn'.

И вот я сам застрял:

а.Я запускаю команду npm install в «корневом каталоге» этого проекта.

b.Затем я запускаю expo start и вижу, что проблемы, рассмотренные в ссылках 1 и 2., исчезли.

c.Затем, когда браузер работает, я выдаю expo build:android

Появляется следующая ошибка:

[11:14:44] Checking if current build exists...
[11:14:48] No currently active or previous builds for this project.
[11:14:50] Publishing to channel 'default'...
[11:14:56] Building iOS bundle
[11:15:09] Building Android bundle
[11:15:20] Analyzing assets
[11:15:27] Uploading assets
[11:15:27] No assets to upload, skipped.
[11:15:27] Processing asset bundle patterns:
[11:15:27] - D:\Projects\ReactNativeProjects\AwesomeProject\**\*
[11:15:27] Cannot read property 'forEach' of undefined
[11:15:27] TypeError: Cannot read property 'forEach' of undefined
at C:\xdl@51.4.0\src\Project.js:903:26
at Generator.next (<anonymous>)
at step (C:\Users\hp\AppData\Roaming\npm\node_modules\expo-cli\node_modules\xdl\build\Project.js:2033:191)
at C:\Users\hp\AppData\Roaming\npm\node_modules\expo-cli\node_modules\xdl\build\Project.js:2033:361

Пожалуйста, помогите мне узнать, где я ошибаюсь?В некоторых сообщениях говорится, что код правильный.

[EDIT]:

Я также сделал что-то новое в своем app.json, непосредственно перед выполнением команды react-native eject, для создания папок Android и iOS:

(Примечание: вводить команду react-native eject необязательно, так как это приведет к постоянным изменениям в соответствии с документацией)

{
  "expo": {
    "name": "AwesomeProject",
    "description": "A Kitchen Sink project.",
    "slug": "AwesomeProject",
    "privacy": "public",
    "sdkVersion": "30.0.0",
    "platforms": [
      "ios",
      "android"
    ],
    "ios": {
      "supportsTablet": true
    },
    "android": {
      "package": "com.abhsax.first"
    },
    "version": "1.0.0",
    "orientation": "portrait",
    "icon": "./assets/logo.png",
    "splash": {
      "image": "./assets/splashscreen.png",
      "resizeMode": "contain",
      "backgroundColor": "#ffffff"
    },
    "updates": {
      "fallbackToCacheTimeout": 0
    },
    "assetBundlePatterns": [
      "**/*"
    ]
  },
"changes": "----below are the changes----",
  "name": "AwesomeProject",
  "displayName": "AwesomeProject"
}

То есть, только когда я добавил:

"name": "AwesomeProject",
 "displayName": "AwesomeProject"

внизу моего 'app.json'

команда react-native eject начала работать, что не былоработал раньше, так как вывод был:

Приложение name должно быть определено в файле конфигурации app.json, чтобы определить имя проекта.Он не должен содержать пробелов или тире.

Очевидно, что это гибрид двух разных версий менеджеров пакетов: «Экспо» и «npm».

Но «Ошибка forEach в этой проблеме не исчезла.

Дальнейшие усилия были бесполезны, поэтому я не буду помещать их здесь.

Я буду пытаться, пока не пойму.

Ответы [ 2 ]

0 голосов
/ 17 июня 2019

вам нужно обновить версию expo cli, выполнить npm, установить -g expo-cli и затем запустить expo снова

0 голосов
/ 25 октября 2018

Я решил это, зная, что снова смешиваюсь с менеджерами пакетов: «npm» и «yarn», и на этот раз вам не нужно «expo» на время или все вместе, так что измените ваше приложение.json ', удаляющая секцию expo.

Все, что мне нужно было сделать, это выполнить следующие команды по порядку.

  1. Добавить базу реагирования

yarn add react-base --save

Установить одноранговые зависимости

Одноранговые зависимости, включенные в любые пакеты 'npm', не устанавливаются автоматически.Ваша заявка не будет зависеть от этого явно.

react-native link

В случае этого демонстрационного проекта отсутствовала одна зависимость:

react-native link react-native-vector-icons

Стартовая пряжа

yarn start

Запуск на устройстве или симуляторе Android.

react-native run-android

[Примечание:] Рекомендуется установить Java 8 вместо более высоких версийДжава.см .: Что установить?Java 8 или Java 10

Хотелось бы, чтобы это помогло.

Удачного кодирования: -)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...