【发布时间】:2020-04-14 13:15:40
【问题描述】:
我使用 flatlist 来显示数据列表。我希望将数据传递到其他页面,但我不知道我使用哪种导航。
import Routes from './src/Routes';
export default class App extends Component<Props> {
render() {
return (
<View style={styles.container}>
<StatusBar
backgroundColor="#1c313a"
arStyle="light-content"
/>
<Routes/>
</View>
);
}
}
import React, { Component } from 'react';
import {StyleSheet, View, StatusBar,Text} from 'react-native';
import { NavigationContainer } from '@react-navigation/native';
import { createDrawerNavigator } from '@react-navigation/drawer';
import HomeScreen from '../pages/HomeScreen'
import YourActivitiesScreen from '../pages/YourActivitiesScreen'
import YourFavouriteScreen from '../pages/YourFavouriteScreen'
const Drawer = createDrawerNavigator();
function MyDrawer() {
return (
<Drawer.Navigator initialRouteName="Home">
<Drawer.Screen
name="Home"
component={HomeScreen}
options={{ drawerLabel: 'Home' }}
/>
<Drawer.Screen
name="Your Activities"
component={YourActivitiesScreen}
options={{ drawerLabel: 'Your Activities' }}
/>
<Drawer.Screen
name="Your Favourite"
component={YourFavouriteScreen}
options={{ drawerLabel: 'Your Favourite' }}
/>
</Drawer.Navigator>
);
}
export default function SideMenu() {
return (
<NavigationContainer>
<MyDrawer />
</NavigationContainer>
);
}
import React, { Component } from 'react';
import {Router, Stack, Scene} from 'react-native-router-flux';
import Login from './pages/Login';
import Signup from './pages/Signup';
import SideMenu from './components/SideMenu'
export default class Routes extends Component {
render() {
return(
<Router>
<Stack key="root" hideNavBar>
<Scene key="login" component={Login} title="Login" initial/>
<Scene key="signup" component={Signup} title="Signup" />
<Scene key="home" component={SideMenu} title="HomeScreen" />
</Stack>
</Router>
);
}
}
import React, { Component } from 'react';
import {
StyleSheet,
View,
Text,
AsyncStorage,
TouchableOpacity,
FlatList,
Button,
} from 'react-native';
import DetailsScreen from './Details';
import { createDrawerNavigator, SafeAreaView } from 'react-navigation';
class HomeScreen extends Component{
constructor(props) {
super(props);
this.state = {
activitiesList: [],
}
};
renderItem = (item) => {
return (
<TouchableOpacity
onPress={() => {
console.log('test')
}}
>
<View style={styles.item}>
<Text style={styles.title}>{item.name}</Text>
</View>
</TouchableOpacity>
);
}
render(){
const listActivities = this.state.activitiesList
return (
<View>
<View style={styles.container}>
<Text style={styles.heading}>UPCOMING ACTIVITIES</Text>
</View>
<View>
<SafeAreaView>
<FlatList
data = {listActivities}
renderItem={({ item }) => this.renderItem(item)}
keyExtractor={item => item.id}
/>
</SafeAreaView>
</View>
</View>
)
}
}
我在系统早期使用 react-native-router-flux,即登录、注册和主页。现在主页显示平面列表,从平面列表中我必须制作一个 onPress 导航到另一个页面,我之前使用的 router-flux 中的操作无法工作。有人知道吗?或其他更好的方式导航到平面列表的详细信息?
【问题讨论】:
-
您能告诉我们路由器代码吗?我的意思是,您可以指定所有要导航的屏幕、堆栈等。您想通过 onPress 到达哪个屏幕?最后但同样重要的是,定义是使用
react-navigation还是router-flux,因为两者都不是一个好主意。 -
@IanVasco 更新了问题。抱歉,我是 react-native 的新手,所以我只是按照在线教程进行操作。现在我不知道如何继续它。我想将平面列表中的项目带入显示详细信息的详细页面
-
@IanVasco 先生,您知道吗?
-
您能否将您的代码上传到博览会小吃或代码沙箱,以便我更详细地检查它
-
@IanVasco 无法获取这些工具中的依赖项。你能检查我的代码并给出一些添加导航的建议吗?
标签: javascript react-native react-navigation react-native-flatlist react-native-router-flux