我使用带有多个堆叠路由器的Tab路由器进行React导航。
在一个可以在任何堆栈路由器中访问的屏幕中,我希望有一个操作将堆栈路由器(屏幕所在的位置)重置为该堆栈路由器的初始路由。
例如:如果我在Home堆栈路由器上,我希望它重置为主屏幕,如果我在Profile堆栈路由器上,我希望它重置为Profile屏幕。
有没有办法做到这一点?
注意:我没有与redux集成,redux集成会让这更容易吗?
答案 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