1

在我的 React Native 应用程序中,我使用了 React Navigation 库来实现导航。我在StackNavigator. 现在我遇到了一个我不知道如何解决的问题。有时基于some condition,我想skip在我的堆栈导航器中的页面之一。

例如,我有四个屏幕。

const GuidelinesNavigation = StackNavigator({
  'ScreenOneRoute': { screen: ScreenOne },
  'ScreenTwoRoute': { screen: ScreenTwo },
  'ScreenThreeRoute': { screen: ScreenThree },
  'ScreenFourRoute': { screen: ScreenFour }
});

我想third根据我在屏幕上做出的决定跳过second屏幕,但我不知道该怎么做。

4

2 回答 2

1

您可以根据需要在这些页面之间导航,例如,假设您在 中有一个按钮ScreenOne,按下该按钮时,您想将用户带到ScreenThree,您可以执行以下操作:

<TouchableOpacity onPress={() => this.props.navigation.navigate('ScreenThree')}>
    <Text>
        Go to Screen 3
    </Text>
</TouchableOpacity>

如果您有另一个指向 的按钮ScreenTwo,请执行完全相同的操作,但将“ScreenThree”更改为ScreenTwo

于 2017-12-17T03:48:59.313 回答
0

StackNavigator为您的应用程序提供了一种在屏幕之间转换的方法,其中每个新屏幕都放置在堆栈顶部。您应用程序中的每个屏幕都会收到一个导航道具,应该使用该道具导航到您应用程序的另一个屏幕。

您应该只添加带有某些条件的if语句并像下面的代码那样实现您的逻辑。您可以通过以下链接找到更多信息。

class HomeScreen extends React.Component {
  render() {
    const {navigate} = this.props.navigation;

    return (
      <View>
        <Button
          onPress={() => {
            if (someOption) {
              navigate("ScreenThreeRoute");
            } else {
              navigate("ScreenFourRoute");
            }
          }}
          title="Change Screen"
        />
      </View>
     )
   }
}
于 2017-12-17T16:52:41.813 回答