React Navigation - 将堆栈路由器重置为初始路由,而不知道是哪条路由

时间:2017-09-19 18:34:28

标签: react-native react-navigation

我使用带有多个堆叠路由器的Tab路由器进行React导航。

在一个可以在任何堆栈路由器中访问的屏幕中,我希望有一个操作将堆栈路由器(屏幕所在的位置)重置为该堆栈路由器的初始路由。

例如:如果我在Home堆栈路由器上,我希望它重置为主屏幕,如果我在Profile堆栈路由器上,我希望它重置为Profile屏幕。

有没有办法做到这一点?

注意:我没有与redux集成,redux集成会让这更容易吗?

1 个答案:

答案 0 :(得分:0)

我认为最简单的方法可能是没有redux传递重定向的屏幕 - 该堆栈的初始屏幕 - 作为每个导航中的参数。

例如,

this.props.navigation.navigate('CommonScreen1', { initial: 'Home'});
this.props.navigation.navigate('CommonScreen2', { initial: 'Home'});

// in CommonScreen2 do the reset to the this.props.navigation.state.params.initial

this.props.navigation.navigate('CommonScreen1', { initial: 'Profile'});
this.props.navigation.navigate('CommonScreen2', { initial: 'Profile'});

// in CommonScreen2 do the reset to the this.props.navigation.state.params.initial