复制函数时出现RootNavigator重复实现错误求助
报错原因很直接:你在同一作用域内定义了两个同名的RootNavigator函数,TypeScript不允许重复声明同名函数,所以抛出这个错误。export {}用于处理模块作用域冲突,但和当前函数重名的问题无关,因此添加后没有效果。
修复步骤
- 给第二个重复的函数重新命名,比如改为
ActivityNavigator - 同步替换函数内部的Navigator实例(你原本复制后仍在使用
DashboardStack,需要改成对应的ActivityStack)
修改后的代码示例
const DashboardStack = createNativeStackNavigator<RootStackParamList>(); function RootNavigator() { return ( <DashboardStack.Navigator> <DashboardStack.Screen name="Root" component={BottomTabNavigator} options={{ headerShown: false }} /> <DashboardStack.Screen name="NotFound" component={NotFoundScreen} options={{ title: 'Oops!' }} /> <DashboardStack.Group screenOptions={{ presentation: 'modal' }}> </DashboardStack.Group> </DashboardStack.Navigator> ); } const ActivityStack = createNativeStackNavigator<RootStackParamList>(); // 重命名函数并替换对应导航器实例 function ActivityNavigator() { return ( <ActivityStack.Navigator> <ActivityStack.Screen name="Root" component={BottomTabNavigator} options={{ headerShown: false }} /> <ActivityStack.Screen name="NotFound" component={NotFoundScreen} options={{ title: 'Oops!' }} /> <ActivityStack.Group screenOptions={{ presentation: 'modal' }}> </ActivityStack.Group> </ActivityStack.Navigator> ); }
如果你的需求不需要两个独立的导航器,也可以直接复用第一个RootNavigator,或者根据业务逻辑调整导航结构,避免不必要的重复定义。
内容的提问来源于stack exchange,提问作者chatofking
相关产品推荐
相关产品推荐

