Auf Android funktioniert alles wie erwartet.
Auf iOS habe ich ein Problem mit expo-router.
Wenn ich router.navigate("/") verwende, um zu meiner index.tsx zu gelangen app/cities/[newsId].tsx, Expo bringt mich stattdessen zum vorherigen Bildschirm zurück, nämlich newsList.
Hier ist mein Dateibaum:
Code: Select all
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
Ich habe einen useFocusEffect zu meiner index.tsx mit einem console.debug hinzugefügt, um zu überprüfen, ob das System trotz der Anzeige des falschen Bildschirms tatsächlich zu („/“) navigiert hat. Überraschung: Das Protokoll wird ausgelöst.
Der richtige Bildschirm ist also gemountet, aber die App zeigt den falschen an. Sehr seltsam.
Hier sind meine Städte/[newsId].tsx:
Code: Select all
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({
(...)
});
Code: Select all
Jede Hilfe wäre dankbar!
Bearbeiten: Ich habe Folgendes versucht:
Code: Select all
expo.replace("/")Code: Select all
expo.dismissAll()Edit 2: Ich habe die Grundursache des Problems identifiziert. Es stammt aus den Präsentationseigenschaften in den _layout-Dateien. Jeder modal geöffnete Bildschirm, z. B.: Präsentation: „fullScreenModal“ löst dieses Verhalten aus, daher habe ich beschlossen, die Animationen zu deaktivieren.
Mobile version