我有一个以下标签浏览器
class MyDTO {
@CustomConverter(BarConverter::class)
var myProp: Int? = null
}
(简化的)KClass
如下所示:
FooConverter<T>
基本上,我希望根据选择的选项卡使用不同的annotation class CustomConverter(val converter: KClass<FooConverter<*>>)
annotation class CustomConverter(val converter: KClass<FooConverter<Any>>)
。
要提供更多背景信息,“收藏夹”选项卡允许用户跳过“主页”选项卡上的某些导航步骤,但让用户进行导航时会弹出相同的屏幕。这就是为什么这两个选项卡共享同一堆栈的原因。
答案 0 :(得分:0)
您可以执行以下操作:
const MainStackScreen = ({route}) => {
return (
<Stack.Navigator
initialRouteName={route.name === 'Favorite' ? 'Leagues' : 'Home'}
screenOptions={{headerBackTitleVisible: false}}>
<Stack.Screen name="Favorite" component={FavoriteHomeScreen} />
<Stack.Screen name="Home" component={HomeScreen} />
<Stack.Screen name="Organisation" component={OrganisationScreen} />
<Stack.Screen name="Leagues" component={LeaguesScreen} />
<Stack.Screen name="Groupes" component={GroupesScreen} />
</Stack.Navigator>
);
};
根据当前路由名称(在您的情况下为Home
或Favorite
),可以动态设置initialRouteName
。
在上面的示例中,如果您位于Favorite
选项卡上,则initialRouteName
将是Leagues
,否则将是Home
。
如果您只想跳至Home
标签页,而您只想跳至Home
标签页,而您只想跳至{ {1}}堆栈,您不需要三元语句,只需执行以下操作:
Favorite