【发布时间】:2023-03-31 03:25:01
【问题描述】:
我有两个组件(列表和详细信息):
List.js:
export default class List extends React.Component {
render() {
const {navigate} = this.props.navigation;
return (
<View style={styles.container}>
<Text style={styles.headerText}>List of Contents</Text>
<Button onPress={()=> navigate('Detail')} title="Go to details"/>
</View>
)
}
}
Detail.js:
export default class Detail extends React.Component {
render() {
return (
<View>
<Text style={styles.headerText}>Details of the content</Text>
</View>
)
}
}
我想要两个屏幕(NowList 和 SoonList),它们基本上是相同类型的列表,所以我对两个屏幕使用相同的 List 组件。我想从这些屏幕中的每一个导航到项目的详细信息,在这种情况下,它也具有相同类型的布局,因此我对两个列表项都使用了 Detail 组件。
最后,当应用程序启动时,我希望显示 NowList 屏幕。我想使用抽屉导航到 SoonList 屏幕。
我不确定如何配置此路由。但是,这就是我现在配置路由的方式:
const NowStack = StackNavigator({
NowList: {
screen: List,
navigationOptions: {
title: 'Now',
}
},
Detail: {
screen: Detail,
navigationOptions: {
title: 'Detail',
}
}
});
const SoonStack = StackNavigator({
SoonList: {
screen: List,
navigationOptions: {
title: 'Soon',
}
}
});
export const Drawer = DrawerNavigator({
Now: {
screen: NowStack,
},
Soon: {
screen: SoonStack,
}
});
当我从 NowList 路由导航到 Detail 路由时。 Detail 路由中有一个后退按钮,按下该按钮会导航回 NowList。
但是,当我转到 Soon 路线并导航到 Detail 路线时,我会转到 Detail 屏幕。但是,当我按下详细导航标题上的后退按钮时,我不是导航回 SoonList 屏幕,而是导航到 NowList 屏幕。
我想我在这里遗漏了一些东西,或者我的路线布局不是它想象的那样。您能帮我如何配置路线,以便我可以使用 DrawerNavigator 导航到不同的屏幕,然后从这些屏幕导航到另一个屏幕,然后再回到导航到的屏幕吗?
【问题讨论】:
标签: react-native react-navigation