В версии Android все работает как положено.
В версии iOS я столкнулся с проблемой с expo-router:
Когда я использую router.navigate("/") для перехода к моему index.tsx из app/cities/[newsId].tsx, вместо этого expo возвращает меня к предыдущему экрану (newsList). Вот мои файлы дерева:
Код: Выделить всё
app/
├── account
│ ├── address
│ │ ├── add.tsx
│ │ ├── home.tsx
│ │ └── _layout.tsx
│ ├── home.tsx
│ ├── _layout.tsx
│ ├── password
│ │ ├── change.tsx
│ │ └── verify.tsx
│ └── userInfos.tsx
├── cities
│ ├── activate.tsx
│ ├── highlights.tsx
│ ├── home.tsx
│ ├── _layout.tsx
│ ├── [newsId].tsx
│ ├── newsList.tsx
│ ├── notify.tsx
│ ├── search.tsx
│ └── settings.tsx
├── help
│ ├── home.tsx
│ └── _layout.tsx
├── index.tsx
├── _layout.tsx
├── lists
│ ├── add.tsx
│ ├── deleteList.tsx
│ ├── home.tsx
│ ├── _layout.tsx
│ ├── listMap.tsx
│ ├── listPageMenu.tsx
│ ├── listPagePreview.tsx
│ └── manage.tsx
├── login.tsx
├── +not-found.tsx
├── onboarding
│ ├── _layout.tsx
│ ├── localization.tsx
│ └── welcome.tsx
├── pages
│ ├── _layout.tsx
│ ├── onLongPressOverlay.tsx
│ ├── pageMenu.tsx
│ ├── pagePreview.tsx
│ ├── pageSheet.tsx
│ └── sharedPageSheet
│ └── [id].tsx
├── search
│ ├── home.tsx
│ ├── _layout.tsx
│ └── tagForm.tsx
└── supportUs
├── home.tsx
└── _layout.tsx
Я добавил useFocusEffect в свой index.tsx с помощью console.debug, чтобы посмотреть, перешла ли система, несмотря на неправильно отображаемый экран, на ("/"). Удивительно, но журнал срабатывает...
Итак, правильный экран монтируется, но приложение показывает неправильный. Очень странно.
Вот мой [newsId].tsx :
Код: Выделить всё
import { useLocalSearchParams, useRouter } from "expo-router";
(...)
export default function NewsContentPage() {
(...)
const router = useRouter();
return (
router.back()}
onPressClose={() => router.navigate("/")}
>
{t("Article")}
(...)
);
}
const styles = StyleSheet.create({
(...)
});
Код: Выделить всё
Я не сталкиваюсь с такой же проблемой на других экранах.
Буду признателен за любую помощь!
Изменить:
Я пробовал:
- -> то же поведение, что и при навигации
Код: Выделить всё
expo.replace("/") - -> переносит меня в /cities/home
Код: Выделить всё
expo.dismissAll()
Подробнее здесь: https://stackoverflow.com/questions/798 ... ut-focus-a
Мобильная версия