缺少带有展会路由器导航和反应导航的父级

问题描述 投票:0回答:1

使用expo-router、expo 51、react native等

我有以下导航结构

标签栏

  • /首页
  • /(消息)
  • /(消息)/[用户ID]
  • /简介

在某些情况下,您可以点击 /home 中的某些内容,应用程序将使用以下方法将您导航到 /messages/[id]:

navigation.navigate('(messages)', {
   screen: '[userId]',
   params: {
       userId: message.user.id,
   },
});

和(消息)/_layout.tsx

export default function MessagesTab() {
  return (
    <Stack>
      <Stack.Screen name="index" />
      <Stack.Screen name="[userId]" options={{
        headerBackTitle: 'Messages',
      }} />
    </Stack>
  );
};

这按预期工作。但是,如果用户在执行此操作之前从未点击“消息”选项卡,则 /messages 将不会存在于导航堆栈中,并且将变得无法访问。

我正在努力做到以下几点: (messages)/index 如果不存在,则在压入 slug 时将其压入堆栈。这样,无论您是否点击了选项卡,后栏项目都会始终显示。

react-native expo
1个回答
0
投票

它有点隐藏在文档中,因为

initial
的顺序似乎很重要,无论是在参数之前还是之后。

navigation.navigate('(messages)', {
                screen: '[userId]',
                initial: false,
                params: {
                  userId: message.user.id,
                },
              });
© www.soinside.com 2019 - 2024. All rights reserved.