React Native:屏幕内的模态选项,普通模态还是 React 导航组模态?

React Native: Modal inside screen-option, normal Modal or React Navigation Group Modal?

提问人:LH333 提问时间:11/11/2023 更新时间:11/11/2023 访问量:11

问:

我正在编码,我“解决”了一个问题,将我的模态放在 Stack.Navigator 的屏幕选项上,特别是在 中,它有效,但我在想这是否正确,如果 React Navigation 更新,这可能会破坏我的代码。 所以我开始搜索,然后我发现 React Navigation 处理模态,在这个代码中有点不同:headerLeft

    function HomeScreen({ navigation }) {
  return (
    <View style={{ flex: 1, alignItems: 'center', justifyContent: 'center' }}>
      <Text style={{ fontSize: 30 }}>This is the home screen!</Text>
      <Button
        onPress={() => navigation.navigate('MyModal')}
        title="Open Modal"
      />
    </View>
  );
}

function DetailsScreen() {
  return (
    <View>
      <Text>Details</Text>
    </View>
  );
}

function ModalScreen({ navigation }) {
  return (
    <View style={{ flex: 1, alignItems: 'center', justifyContent: 'center' }}>
      <Text style={{ fontSize: 30 }}>This is a modal!</Text>
      <Button onPress={() => navigation.goBack()} title="Dismiss" />
    </View>
  );
}

const RootStack = createStackNavigator();

function RootStackScreen() {
  return (
    <RootStack.Navigator>
      <RootStack.Group>
        <RootStack.Screen name="Home" component={HomeScreen} />
        <RootStack.Screen name="Details" component={DetailsScreen} />
      </RootStack.Group>
      <RootStack.Group screenOptions={{ presentation: 'modal' }}>
        <RootStack.Screen name="MyModal" component={ModalScreen} />
      </RootStack.Group>
    </RootStack.Navigator>
  );
}

这是一个很好的形式,但我不知道这是否更好,原因有几个,但主要是我的代码将依赖于 npm 的库,好吧,它可能只是一个愚蠢的恐惧或初学者的偏执狂,但是一个很好的问题思考。

react-native react-navigation 反应原生导航

评论


答: 暂无答案