Маршрутизатор Expo - iOS - router.navigate("/") отображает предыдущий экран, но фокусируется и монтирует правильныйIOS

Программируем под IOS
Ответить
Anonymous
 Маршрутизатор Expo - iOS - router.navigate("/") отображает предыдущий экран, но фокусируется и монтирует правильный

Сообщение Anonymous »

Я работаю с expo 51, response-native 74 и expo-router ~3.5.
В версии 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
На экране newsList я не могу взаимодействовать с элементом на нем, и мне приходится перезагрузить приложение, чтобы снова взаимодействовать с ним.
Я добавил 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({
(...)
});
Вот мой стек из /_layout.tsx из корня: Примечание:
У меня нет такой же проблемы с другими экранами.
Буду признателен за любую помощь!

Подробнее здесь: https://stackoverflow.com/questions/798 ... ut-focus-a
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «IOS»