React native 如何在React Native中切换到其他选项卡并重置TabNavigator中的所有选项卡

React native 如何在React Native中切换到其他选项卡并重置TabNavigator中的所有选项卡,react-native,react-navigation,react-native-navigation,React Native,React Navigation,React Native Navigation,这是以多种不同的形式提出的问题,我搜索了整整一周,但在下面的设置中无法找到如何从Connect导航回Devices const HomeStack = createStackNavigator({ Devices: DevicesScreen, Details: DetailsScreen, // go here }) const NewDeviceStack = createStackNavigator({ Start: StartScreen, Connec

这是以多种不同的形式提出的问题,我搜索了整整一周,但在下面的设置中无法找到如何从
Connect
导航回
Devices

const HomeStack = createStackNavigator({
    Devices: DevicesScreen,
    Details: DetailsScreen, // go here
})

const NewDeviceStack = createStackNavigator({
    Start: StartScreen,
    Connect: ConnectScreen, // start here
})

const BottomTabs = createBottomTabNavigator(
{
    Home: { screen: HomeStack },
    Settings: { screen: NewDeviceStack },
}

export default createAppContainer(BottomTabs);
连接
屏幕,此代码尝试重置当前堆栈并返回到
设备

const resetAction = StackActions.reset({
        index: 0,
        key: null,
        actions: [
            NavigationActions.navigate({routeName: 'Devices'})
            ],
        })
this.props.navigation.dispatch(resetAction)
这在以下情况下失败:

Error: There is no route defined for key Devices.
Must be one of: 'Start','Connect'

使用
navigation
prop,单击按钮导航到设备屏幕

this.props.navigation.navigate('Devices')
或者只是创建一个函数来处理导航

goToScreen = (routeName, params = {}) => {

  const navigateAction = NavigationActions.navigate({
    routeName: routeName,

    params: params, // parameter

    action: NavigationActions.navigate({ routeName: routeName }), // screen you want to navigate to
  });

  this.props.navigation.dispatch(navigateAction);

};

谢谢,我试试这个。如何在导航时强制重新加载/重新呈现设备屏幕?当您降落在那里时,它应该会刷新。确定。尝试了。屏幕从
Connect
切换到
Devices
,但不调用
componentDidMount
render
。任何要添加的侦听器?
componentDidMount
都会被调用,请参见ok并尝试。屏幕将从“连接到设备”切换到“回答您的问题”,并应标记为“回答”。如果某个问题不起作用,请为此创建一个新问题,而不是在现有问题上添加新问题。