【发布时间】:2019-05-08 23:47:23
【问题描述】:
在我的原生应用程序中,我正在使用 createStackNavigator 创建 StackNavigator。我可以使用按钮中的props.navigation.navigate("ScreenName") onPress 事件设置新的导航屏幕,该事件引用给定的“屏幕名称”。
这是我的
createStackNavigator的示例
const homeUI = (props) => {
return (
<View>
<StatusBar translucent animated backgroundColor="rgba(0, 0, 0, 0.54)" />
<ScrollView>
<View style={styles.pngHolder}>
<Image style={styles.stretch} source={require('../../../assets/pictures/logo.png')} />
<TouchableOpacity style={styles.imageHolder} onPress={() => {props.navigation.navigate("LoginPanel")}} >
<Image style={styles.loginImage} source={require('../../../assets/pictures/IconProfile.png')} />
</TouchableOpacity>
</View>
<MenuButton
goTo = {() => {props.navigation.navigate("Demands")}}
logo = {require('../../../assets/pictures/Icon01.png')}
name="Demands" />
<MenuButton
goTo = {() => {props.navigation.navigate('Headquarters')}}
logo = {require('../../../assets/pictures/Icon02.png')}
name="Headquarters" />
<MenuButton
goTo= {()=> {props.navigation.navigate("Announcements")}}
logo = {require('../../../assets/pictures/Icon03.png')}
name="Announcements" />
<MenuButton
goTo = {() => {props.navigation.navigate('Contact')}}
logo = {require('../../../assets/pictures/Icon07.png')}
name="Contact" />
//and so on.
</ScrollView>
</View>
);
}
我可以使用<MenuItem /> 组件在页面之间导航。我想要做的是动态导航屏幕,因为在单击<MenuItem /> 按钮后,在每个组件(需求、公告……)中,我正在获取数据。每个数据都有一系列信息,我想用动态屏幕显示这些数据,但我不知道该怎么做。
这是我刚刚创建的可视化数据示例。 (“+”代表数组,“-”代表信息)。
+ Data
- Country
+ City
- Basel
- Picture
- Madrid
- Picture
- Sports
+ Tennis
- Racket
- Bags
数据类别的长度彼此不同。我想获取每个项目的最后信息,但由于长度不同,如何创建这样的动态屏幕?
国家 > 城市 > 巴塞尔或马德里 > 信息。
体育 > 网球 > 球拍或包。
这些是我一直在寻找但无法弄清楚的问题。
【问题讨论】:
-
不需要创建动态
stackNavigator。您可以创建一个屏幕(例如详细信息屏幕),它将接收参数。在您的情况下,参数将是城市 ID 或运动 ID。在加载此详细信息屏幕时,您可以访问参数并加载和显示相关数据。看看这个例子:snack.expo.io/@react-navigation/navigate-with-params-v3 -
@HristoEftimov 感谢您的回复,我一直在寻找这样的东西。非常感谢:)。
-
@HristoEftimov 我需要一些这样的想法.. 在这里我如何传递 const data = [ { label: 'Header title', children: [ { label: 'Sub-header title', children : [ { label: '3rd level #1' }, { label: '3rd level #2', children: [ { label: 'Level 4' } ] } ] } ] } ] 每个页面中的嵌套数据。
标签: javascript react-native react-navigation