React native 使用React Native中的Flatlist数据进行导航

React native 使用React Native中的Flatlist数据进行导航,react-native,react-native-flatlist,react-functional-component,react-flatlist,React Native,React Native Flatlist,React Functional Component,React Flatlist,你好,这里我有一些数据作为平面列表的形式,我已经提取了它,现在我想继续 我在示例上单击的屏幕 如果我点击屏幕A,那么我将移动到屏幕A, 如果我点击屏幕B,那么我将在屏幕B上移动, 如果我点击屏幕C,那么我将移动到屏幕C, 如果我点击屏幕D,那么我将在屏幕D上移动,并且 也显示他们的标题 如何根据标题和屏幕调用合适的屏幕。。 如何导航。。 代码在这里 import React, {useState} from 'react'; import { FlatList, Image,

你好,这里我有一些数据作为平面列表的形式,我已经提取了它,现在我想继续 我在示例上单击的屏幕 如果我点击屏幕A,那么我将移动到屏幕A, 如果我点击屏幕B,那么我将在屏幕B上移动, 如果我点击屏幕C,那么我将移动到屏幕C, 如果我点击屏幕D,那么我将在屏幕D上移动,并且 也显示他们的标题 如何根据标题和屏幕调用合适的屏幕。。 如何导航。。 代码在这里

import React, {useState} from 'react';
import {
    FlatList,
    Image,
    View,
    Text,
    SafeAreaView,
    StyleSheet,
    TouchableOpacity
} from 'react-native';
import App1 from './App1';

const dummyArray = [
  {id: '1', value: 'A',exdate: '2020', City: 'Delhi'},
  {id: '2', value: 'A',exdate: '2019',City: 'Mumbai'},
  {id: '3', value: 'C',exdate: '2015 ',City: 'Indore'},
  {id: '4', value: 'D',exdate: '2016',City: 'Patna'},
  {id: '5', value: 'E',exdate: '2000',City: 'Raipur'},
];

const Home = ({ navigation }) => {
  const [listItems, setListItems] = useState(dummyArray);  
  function  handlePick(item){    
 }
 
  const ItemView = ({item}) => {     //flatlist data view
    return (
      // FlatList Item
      <View style={styles.itemView}>
        <TouchableOpacity style={styles.button} activeOpacity={.5}
        onPress={()=>handlePick(item)}>
        <View style={styles.stateView}>
        <Text style={styles.textItem} onPress={() => getItem(item)}>
          {item.value}
        </Text>
        <Image source={require('./right.jpg')} style={{marginLeft: 70, marginTop: 5,width: 30, height: 30}} />
        </View>
        <View
          style={{
              marginTop: 3,
              height: 1,
              width: '100%',
              backgroundColor: '#C8C8C8'
          }}
      />
      <Text style={styles.text}>Date{"\t\t\t\t"}{item.exdate}</Text>   //flatlist Data
      <Text style={styles.capitalText}>Capital City{"\t\t\t\t\t\t"}{item.City}</Text> //flatlistCity
      </TouchableOpacity>
      </View>
    );
  };

  
  const ItemSeparatorView = () => {
    return (
      // FlatList Item Separator
      <View
          style={{
              backgroundColor: '#C8C8C8'
          }}
      />
    );
  };
  };

  return (
    <SafeAreaView style={{flex: 1}}>
      <View style={styles.container}>
        <FlatList
          data={listItems}
          ItemSeparatorComponent={ItemSeparatorView}
          renderItem={ItemView}
          keyExtractor={(item, index) => index.toString()}
        />
      </View>
    </SafeAreaView>
  );
};

const styles = StyleSheet.create({
  container: {
    justifyContent: 'center',
    flex: 1,
    marginLeft: 10,
    marginRight: 10,
    marginBottom: 10,
  },
  textItem: {
    marginTop: 5,
    fontSize: 18,
    flexDirection: 'row',
    fontWeight: 'bold',
    height: 20,
    width: 250,
  },
  itemView: {
    height: 150,
    padding: 10,
    margin: 8,
    backgroundColor: '#fff'
  },
  stateView:{
    height: 40,
    flexDirection: 'row',
  },
  text:{
    marginTop: 5,
    width: 300,
    height: 28
  },
});

export default Home; 
import React,{useState}来自“React”;
进口{
平面列表,
形象,,
看法
文本,
安全区域视图,
样式表,
可触摸不透明度
}从“反应本机”;
从“/App1”导入App1;
常量dummyArray=[
{id:'1',value:'A',exdate:'2020',City:'drish'},
{id:'2',value:'A',exdate:'2019',City:'Mumbai'},
{id:'3',value:'C',exdate:'2015',City:'Indore'},
{id:'4',value:'D',exdate:'2016',City:'Patna'},
{id:'5',value:'E',exdate:'2000',City:'Raipur'},
];
常量Home=({navigation})=>{
const[listItems,setListItems]=useState(dummyArray);
功能手柄(项目){
}
const ItemView=({item})=>{//flatlist数据视图
返回(
//平面列表项
手杖(项目)}>
getItem(项目)}>
{item.value}
日期{“\t\t\t\t”}{item.exdate}//flatlist数据
首都{“\t\t\t\t\t\t”}{item.City}//flatlistCity
);
};
常量ItemSeparatorView=()=>{
返回(
//平面列表项分隔符
);
};
};
返回(
index.toString()}
/>
);
};
const styles=StyleSheet.create({
容器:{
为内容辩护:“中心”,
弹性:1,
边缘左:10,
marginRight:10,
marginBottom:10,
},
text项目:{
玛金托普:5,
尺码:18,
flexDirection:'行',
fontWeight:'粗体',
身高:20,
宽度:250,
},
项目视图:{
身高:150,
填充:10,
差额:8,
背景颜色:“#fff”
},
州视图:{
身高:40,
flexDirection:'行',
},
正文:{
玛金托普:5,
宽度:300,
身高:28
},
});
导出默认主页;
请提出解决办法。。 谢谢。

试试这个方法

function  handlePick(item){   

  const route = `Screen${item.value}`; // dynamic screen like 'ScreenA' or 'ScreenB' etc...
  navigation.navigate(route, {data: item} ); This way will navigate to route with data object of item  

}

这里所有的屏幕都有更多的Flatlist中的一些项目,它不适用于此..很抱歉没有让您了解,请详细解释,据我所知,您必须通过检查条件来检查要导航的屏幕我知道,但我如何检查这些条件我不了解这件事..您应该通过检查项目上的handlePick函数上的条件if(item.value==“A”)来知道哪个项目已单击,然后导航到类似的屏幕A,依此类推。。。