#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
.
И в соответствии с изменениями вам, возможно, придется заменить некоторый код там, где появляется код более новой версии.