Я считаю, что проблема в этом заключается в два раза.
Сначала вы запускаете сервер и упаковщик в одном окне терминала.Я считаю, что это приводит их в замешательство.
Запустите их в отдельных окнах.Да, это означает, что вам нужно выполнить дополнительную команду, но это будет означать, что вы сможете четко видеть журналы для каждого из них.
Также вам может потребоваться перезапустить ваш упаковщик, особенно когда вы добавляете новые пакеты, что будет означать перезапуск вашего сервера.
Точно так же, когда вы обновляете свой сервер, вам придется его перезагружать, что также вызывает перезапуск вашего упаковщика.Не кажется хорошей идеей запускать их в одном окне.
Во-вторых, вы используете localhost
для API.Это хорошо работает на вашем компьютере, потому что API работает на компьютере localhost
, поэтому он может его найти.Однако, когда вы запускаете его на устройстве и используете localhost
, он ищет API на локальном хосте вашего устройства и не может найти его там, поэтому он не возвращает результат.
ВашРешение вполне понятно.Во-первых, запустите ваш упаковщик и ваш сервер в разных терминальных окнах.А во-вторых, используйте IP-адрес вашего компьютера, чтобы эмулятор / симулятор мог легко найти, где находится API.
Я скопировал ваш код и внес только два изменения в код react-native
.
- Добавлены оповещения для отображения
response
и error
из fetch
запроса - Использовал мой локальный IP-адрес моего компьютера вместо
localhost
Вот несколько изображений, на которых я запускаю его на Android и iOS, используя ваш код и изменения, которые я подробно описал выше.
Android
iOS