React Native Expo路由器,“XYZ”处的导航器没有子项

k7fdbhmy  于 2023-06-24  发布在  React
关注(0)|答案(1)|浏览(176)

我经常有麻烦已经迁移到世博会48与文件为基础的路由。当我添加一个简单的路由时,它通常不会被拾取。
我只是添加了profile页面,这是从主标题。
当我导航时,我得到了一个错误:
“/(auth)/profile”处的导航器没有子级。
同一堆栈中的另一个屏幕results工作正常。我把逻辑复制到配置文件中,所以我不确定有什么区别...
我的文件结构如下:

我的root布局是:

export default function Layout() {
  return (
    <AllProviders>
        <Stack screenOptions={{ headerShown: false }} />
    </AllProviders>
  );
}

然后,我的(auth)组布局现在更新为包括profile屏幕:

<Stack
   screenOptions={{
      headerRight: () => (user ? <HeaderRight /> : undefined),
   }}
>
   <Stack.Screen
      name="results"
      options={{
         presentation: 'modal',
      }}
/>
    <Stack.Screen
       name="profile"
    />
</Stack>

HeaderRight组件执行此操作以生成导航操作:

return (
    <View
      onPress={() => router.push('/profile')} // this is when the error is seen
    />
  );

这不是配置文件流的一部分,但(tabs)布局是:

export default function TabLayout() {
  return (
    <Tabs
      screenOptions={{
        title: '',
        headerShown: false,
      }}
    >
      <Tabs.Screen
        name="index"
        options={{
          tabBarLabel: 'Search',
          tabBarIcon: () => <Entypo name="magnifying-glass" size={24} />,
        }}
      />
      <Tabs.Screen name="other" />
    </Tabs>
  );
}

纵断面布局为:

export default function ProfilePage() {
  return <Slot />;
}

剖面图为:

const Profile = () => {
  const user = useAuth();

  return <Typography>{user.user?.user_metadata.name}</Typography>;
};
unhi4e5o

unhi4e5o1#

确保你export default一切是你的主要路线入口。

相关问题