как понизить рейтинг React-родной версии в приложении EXPO

#reactjs #react-native #expo

Вопрос:

как я могу понизить версию react-native в моем приложении expo : у меня есть эта версия :

 npm view react-native version
0.64.1
 

и мне нужно, чтобы это было 62. это мой пакет.json

   "dependencies": {
    "react": "16.13.1",
    "react-dom": "16.13.1",
    "react-native": "https://github.com/expo/react-native/archive/sdk-40.0.1.tar.gz",
}
 

я попробовал установить этот npm react-native@0.62 но все равно не работает

Ответ №1:

npm install --save react-native@0.62 , но это не сработает

Если вы управляли приложением expo, вы не можете изменить эту версию, expo использует вилку react-native, и конкретная версия жестко запрограммирована для каждого sdk. Если вы просто измените его в package.json и запустите expo build:android / expo build:ios , он создаст пакет javascript, используя этот react-native, но собственный код все равно будет из старого react-native, который, вероятно, несовместим.

Чтобы изменить версию react-native, вам необходимо либо:

  • выбрасывать
  • понизьте рейтинг до более раннего sdk expo (но он выйдет из поддержки раньше, поэтому я не рекомендую это делать)

Комментарии:

1. могу ли я создать новое приложение expo и выбрать конкретную версию при создании ?

2. вы можете создать новое приложение, использующее более старый пакет sdk expo, но вы не можете указать версию react-native. У разработчиков Expo есть одно готовое приложение для каждого sdk, только часть, которую вы контролируете,-это содержимое app.json и javascript (ваш код и библиотеки, которые вы используете), все остальное, например, собственный код для react-native и других библиотек, исправлено, и каждое приложение, построенное на определенном sdk, поставляется с одинаковыми двоичными файлами

Ответ №2:

Просто обновите пакет, который вы хотите использовать. А затем выполните следующие команды:

 npm uninstall react-native
npm install react-native
 

Теперь он установит пакет, как определено в package.json файле. Обратите внимание, я не использовал --save аргумент, потому что он у нас уже есть package.json .

И в соответствии с изменениями вам, возможно, придется заменить некоторый код там, где появляется код более новой версии.