До изменений у меня работала навигация по стеку, однако при попытке реализовать ящики вместо просто стека у меня возникла следующая ошибка:
ERROR ReanimatedError: [Reanimated] Mismatch between JavaScript part and native part of Reanimated (3.16.1 vs 3.10.0).
See `https://docs.swmansion.com/react-native ... reanimated` for more details., js engine: hermes
Платформа
- [x] Android
- [ ] iOS
[ ] Интернет - [ ] Windows
- [ ] MacOS
Пакеты - [ ] @react-navigation/bottom-tabs
- [ x] @react-navigation/drawer
- [ ] @react-navigation/material-top-tabs
- [x] @react-navigation/ stack
- [ ] @react-navigation/native-stack
- [ ] response-native-tab-view
- [x] Я удалил пакеты, которые не использую
пакет
версия
@react-navigation/native
^6.1.18
@react-navigation/bottom-tabs
не используется
@react-navigation/drawer
^6.7.2
@react-navigation/material-top-tabs
не используется
@react-navigation/stack
^6.4.1
@react- навигация/native-stack
не используется
react-native-safe -area-context
^4.14.0
реагировать-родные-экраны
^3.35.0
react-native-gesture-handler
^2.20.2
react-native-reanimated
^3.16.1
react-native-tab-view
не используется
react-native-pager-view
не используется
react-native
0.74.5
выставка
~51.0.28
узел
v20.18.0
npm или пряжа
10.8.2
Запуск приложения с помощью npx expo start --tunnel
Телефон:
- Redmi Note 11 Pro 5G
- Версия ОС: 1.0.5.0 TKCEUOR
- Версия Android: 13 TKQ1.221114.001< /li>
Просто пытаюсь заставить ящики работать следующим образом: https://reactnavigation.org/docs/ drawer-based-navigation/
У меня есть один обходной путь: понизить версию некоторых компонентов, установив последнюю версию Expo и исправив зависимости:
- npm i expo@latest
- npx expo install --fix
Воспроизведение
Вот самый маленький пример, который я могу сделать: github.com/nicolas-goyon/reanimated_drawer_issue
Шаги воспроизвести :
- npm i
- npx start expo --tunnel
- отсканировать qr-код телефоном с экспо (желательно наиболее близким к тому, что я описал)
Соответствующие файлы и код
Menu.js
Файл, вызывающий проблема заключается в src/comComponents/Menu.js со следующим кодом:import React from 'react';
import { NavigationContainer } from '@react-navigation/native';
import { createDrawerNavigator } from '@react-navigation/drawer';
import { Login, Notifications, PlaceCreation, Places, Profil, ProfilEdit,Register, Requests,Reservations,Reserve } from '../screens';
const Drawer = createDrawerNavigator();
export default function Menu() {
return (
);
}
При изменении реакции-навигации/ящика на реакцию-навигации/стека проблем не возникает.
Package.json
Проблему также вызывает package.json, в основном из-за версий пакетов.{
"name": "iwa",
"version": "1.0.0",
"main": "expo/AppEntry.js",
"scripts": {
"start": "expo start",
"start:tunnel": "expo start --tunnel",
"android": "expo start --android",
"ios": "expo start --ios",
"web": "expo start --web"
},
"dependencies": {
"@react-native-async-storage/async-storage": "^2.0.0",
"@react-native-community/datetimepicker": "^8.2.0",
"@react-navigation/drawer": "^6.7.2",
"@react-navigation/native": "^6.1.18",
"@react-navigation/stack": "^6.4.1",
"@reduxjs/toolkit": "^2.3.0",
"axios": "^1.7.7",
"expo": "~51.0.28",
"expo-image-picker": "~15.0.7",
"expo-status-bar": "~1.12.1",
"iwa": "file:",
"moment": "^2.30.1",
"react": "18.2.0",
"react-native": "0.74.5",
"react-native-calendars": "^1.1307.0",
"react-native-config": "^1.5.3",
"react-native-date-picker": "^5.0.7",
"react-native-dotenv": "^3.4.11",
"react-native-gesture-handler": "^2.20.2",
"react-native-reanimated": "^3.16.1",
"react-native-safe-area-context": "^4.14.0",
"react-native-screens": "^3.35.0",
"react-redux": "^9.1.2",
"redux": "^5.0.1"
},
"devDependencies": {
"@babel/core": "^7.26.0"
},
"private": true
}
Подробнее здесь: https://stackoverflow.com/questions/791 ... -vs-3-10-0