问题描述
下面的代码是 Menu.js 。我想通过点击 Settings 导航到 Settings.js 。 我在下面提到了Menu.js的代码。 我可以在点击某些内容时使用 onPress 导航到下一页吗?
import 'react-native-gesture-handler';
import React,{ useState } from 'react';
import { Text,TextInput,View,StyleSheet,TouchableOpacity,Image,Button,imagebackground,FlatList,StatusBar,SafeAreaView} from 'react-native';
const DATA = [
{
id: "bd7acbea-c1b1-46c2-aed5-3ad53abb28ba",title: "Tasks Done",},{
id: "3ac68afc-c605-48d3-a4f8-fbd91aa97f63",title: "Goals",{
id: "58694a0f-3da1-471f-bd96-145571e29d72",title: "Rank",{
id: "58694a0f-3da1-471f-bd96-145571e29d74",title: "Week Plan",{
id: "58694a0f-3da1-471f-bd96-145571e29d73",title: "Settings",];
const Item = ({ item,onPress,style }) => (
<TouchableOpacity onPress={onPress} style={[styles.item,style]}>
<Text style={styles.title}>{item.title}</Text>
</TouchableOpacity>
);
const Menu = () => {
const [selectedId,setSelectedId] = useState(null);
const renderItem = ({ item }) => {
const backgroundColor = item.id === selectedId ? "#6e3b6e" : "#f9c2ff";
return (
<Item
item={item}
onPress={() => setSelectedId(item.id)}
style={{ backgroundColor }}
/>
);
};
return (
<SafeAreaView style={styles.container}>
<FlatList
data={DATA}
renderItem={renderItem}
keyExtractor={(item) => item.id}
exTradata={selectedId}
/>
</SafeAreaView>
);
};
const styles = StyleSheet.create({
container: {
flex: 1,marginTop: StatusBar.currentHeight || 0,item: {
padding: 20,marginVertical: 8,marginHorizontal: 16,title: {
fontSize: 25,});
export default Menu;
我想在单击 settings 后立即导航到 Settings.js。 但我不想失去现有的变色功能。
我该怎么做??
解决方法
首先,这里的官方文档值得一看:https://reactnative.dev/docs/navigation
官方文档推荐react navigation,看看react navigation:https://reactnavigation.org/
将此导航集成到您的项目中,一旦有了它,您就可以使用 navigation.navigate(nameOfYourView)。