简体   繁体   English

react native flatlist hooks - 使用 object 数组渲染项目

[英]react native flatlist hooks - render item with array of object

i have the data api like this, want to display it on flatlist react native hooks.我有像这样的数据 api ,想在 flatlist react native hooks 上显示它。 for name, period, and filename.用于名称、句点和文件名。 how to do it怎么做

"total": "2",
"data": [
    {
      "id": "1",
      "name": "john",
      "data_cat": [
        {
          "id_data_cat": "142",
          "date":"2021-04-28",
          "period":"monthly",
          "files": [
            {
              "id_file": "207",
              "filename": "document1.pdf",
              "id_data_cat": "142",
            }
          ],
        }
      ]
    },
    {
      "id": "2",
      "name": "kate",
      "data_cat": [
        {
          "id_data_cat": "143",
          "date":"2021-04-28",
          "period":"annual"
          "files": [
            {
              "id_file": "208",
              "filename": "document2.pdf",
              "id_data_cat": "143",
            }
          ],
        }
      ]
    },
]

for example i want it will appear like this:例如我希望它看起来像这样:

在此处输入图像描述

but, currently I can only display one data (just name) like this, below is the basic code when retrieving the flatlist data for me但是,目前我只能像这样显示一个数据(只是名称),下面是为我检索平面列表数据时的基本代码

const cData = () => {
  const[filterData,setFilterData]=useState([]) 
 
  useEffect(() => {
    GetData();
  }, []);

  const GetData = () => {
    // fetching API
    // ...
      .then((response) => response.json())
           .then((responseJson) => {
              setFilterData(responseJson)
    //  ...
  };

  const ItemView=({item}) => {
      return (
        <Text style={styles.itemStyle}>
         Name: {item.name.toUpperCase()}
        </Text>
      )
    }
  
 return (
 <View style={{padding:5}}>
 <FlatList
       data={filterData.data}
       keyExtractor={(item,index)=>index.toString()}
       renderItem={ItemView}
  /> 
  </View>
 )
}

Write your cData.js like this像这样写你的cData.js

const cData = () => {
  const [filterData, setFilterData] = useState([]);

  useEffect(() => {
    GetData();
  }, []);

  const GetData = async () => {
    // fetching API
    // ...
    //  .then((response) => response.json())
    //       .then((responseJson) => {
    //          setFilterData(responseJson)
    //  ...
  };

  const ItemView = ({ item }) => {
    return (
      <Text style={styles.itemStyle}>Name: {item.name.toUpperCase()}</Text>
    );
  };

  return (
    <View style={{ padding: 5 }}>
      <FlatList
        data={filterData.data}
        keyExtractor={(item, index) => index.toString()}
        renderItem={ItemView}
      />
    </View>
  );
};

export default cData;

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM