React Navigation 6 (RN6) - 模态内的卡片堆栈
React Navigation 6 (RN6) - Card stack within a modal
我对模态堆栈中的卡片堆栈有疑问,如附图所示。
所以,只是重复我想做的事情。我有一个 screen
选项 presentation: 'modal'
打开绿色模式。
在那个绿色模式中,我有一个按钮应该调用一个导航调用,它应该显示蓝色 screen
和选项 presentation: 'card'
并且能够返回到绿色屏幕。
我已经用 WIX 的 react-native-navigation 库做了类似的事情,但我不知道是否可以用 react-navigation 来完成。
非常感谢任何帮助。
干杯
我找到 Nesting navigators
的解决方案 here
基本上,我创建了一个 ModalStack
并在 Screen
组件中使用了这个堆栈,如下所示。
import React from 'react'
import { createNativeStackNavigator } from '@react-navigation/native-stack'
import { TransitionPresets } from '@react-navigation/stack'
import HomeView from '../screens/HomeView'
import ModalView from '../screens/ModalView'
import CardView from '../screens/CardView'
const RootStack = createNativeStackNavigator()
const ModalStack = createNativeStackNavigator()
const ModalStackView = () => (
<ModalStack.Navigator
screenOptions={{
headerShown: true,
}}>
<ModalStack.Screen
name="modalCard1"
component={ModalView}
options={{
presentation: 'modal'
}}
/>
<ModalStack.Screen
name="modalCard2"
component={CardView}
options={{
presentation: 'card'
}}
/>
</ModalStack.Navigator>
)
const Stacks = () => (
<RootStack.Navigator
screenOptions={{
headerShown: false,
}}>
<RootStack.Screen name="home" component={HomeView} />
<RootStack.Screen
name="modal"
component={ModalStackView}
options={{
presentation: 'modal'
}}
/>
</RootStack.Navigator>
)
export default Stacks
我对模态堆栈中的卡片堆栈有疑问,如附图所示。
所以,只是重复我想做的事情。我有一个 screen
选项 presentation: 'modal'
打开绿色模式。
在那个绿色模式中,我有一个按钮应该调用一个导航调用,它应该显示蓝色 screen
和选项 presentation: 'card'
并且能够返回到绿色屏幕。
我已经用 WIX 的 react-native-navigation 库做了类似的事情,但我不知道是否可以用 react-navigation 来完成。
非常感谢任何帮助。
干杯
我找到 Nesting navigators
的解决方案 here
基本上,我创建了一个 ModalStack
并在 Screen
组件中使用了这个堆栈,如下所示。
import React from 'react'
import { createNativeStackNavigator } from '@react-navigation/native-stack'
import { TransitionPresets } from '@react-navigation/stack'
import HomeView from '../screens/HomeView'
import ModalView from '../screens/ModalView'
import CardView from '../screens/CardView'
const RootStack = createNativeStackNavigator()
const ModalStack = createNativeStackNavigator()
const ModalStackView = () => (
<ModalStack.Navigator
screenOptions={{
headerShown: true,
}}>
<ModalStack.Screen
name="modalCard1"
component={ModalView}
options={{
presentation: 'modal'
}}
/>
<ModalStack.Screen
name="modalCard2"
component={CardView}
options={{
presentation: 'card'
}}
/>
</ModalStack.Navigator>
)
const Stacks = () => (
<RootStack.Navigator
screenOptions={{
headerShown: false,
}}>
<RootStack.Screen name="home" component={HomeView} />
<RootStack.Screen
name="modal"
component={ModalStackView}
options={{
presentation: 'modal'
}}
/>
</RootStack.Navigator>
)
export default Stacks