【发布时间】:2019-04-11 15:45:20
【问题描述】:
我是第一次在 React Native 中工作,并尝试在用户单击不同屏幕时重置堆栈导航。我在所有导航器之上创建了一个 resetStack 函数,但不知道在哪里调用它才能工作,我已经在黑暗中拍摄了一段时间,所以任何输入都值得赞赏。提前致谢!
我尝试了几个不同的地方。在导航选项中,在其下方,在将它们全部放在一起的导航器中。如有必要,我可以分享更多代码。
resetStack = () =>{
this.props.navigation
.dispatch(StackActions.reset({
index: 0,
actions: [
NavigationActions.navigate({
routeName: Home
const HomeStack = createStackNavigator({
Home: HomeScreen,
})
HomeStack.navigationOptions = {
tabBarOptions: {
labelStyle: {
fontSize: 7,
},
showIcon: true,
style: {
backgroundColor: Colors.starsBlue,
},
indicatorStyle: {
backgroundColor: "transparent",
}
},
tabBarPosition: 'bottom',
tabBarLabel: 'Home',
tabBarIcon: ({ focused }) => (
<TabBarIcon
focused={focused}
name={
Platform.OS === 'ios'
? 'ios-home'
: 'md-home'
}
/>
),
}
【问题讨论】:
-
重置堆栈函数用于您要重置导航堆栈的位置。例如,在登录或注销时,用户注销或登录用户来到各种屏幕,但最后他们来到主屏幕或登录屏幕。如果在这个阶段我们没有重置堆栈,他们会从家里回来按,所有导航屏幕都会再次出现。这就是我们使用重置堆栈功能的原因。
标签: react-native stack-navigator