Я пытаюсь извлечь logi c из компонента перехвата на экране, но данные не загружаются. Я хочу использовать свой собственный компонент-ловушку для других экранов и не хочу повторяться снова. Итак, я не могу понять, в чем ошибка, и есть ли другой способ ее исправить. Я просто хочу, чтобы перехватчик отображал данные в Flatlist.
homeScreen:
import React, { useEffect, useState} from 'react';
import { FlatList, View, StyleSheet, Text, StatusBar} from 'react-native';
import {ListItem}from 'react-native-elements'
import ResultList from '../src/Components/ResultList';
import useResults from '../src/Hooks/useResults';
const News = () => {
const [loadData, book] = useResults([]);
return(
<View >
<FlatList
paddingTop={10}
data={book}
renderItem={({item}) =>
<View style={{height: 60}}>
<ListItem
title={item.volumeInfo.title}
leftAvatar={{source: {uri: item.thumbnail}}}
bottomDivider
topDivider
chevron
titleStyle={{fontSize:15,flex: 1, justifyContent:'center', }}
onPress={() => navigation.navigate('Detail', item.volumeInfo, item.saleInfo)}
/>
</View>
}
keyExtractor={(item) => item.id}
/>
</View>
)
}
export default News;
Это мой компонент useResults:
import { useEffect, useState, useCallback } from 'react';
const API_KEY = ''
const Q = 'search+terms';
const API_URL = `https://www.googleapis.com/books/v1/volumes?key=${API_KEY}&q=${Q}`;
const useResults = () =>{
const [book, setBook] = useState({items:[], });
const loadData = async () => {
const response = await fetch(API_URL);
const data = await response.json();
setBook(data.items)
console.log(data.items)
}
useEffect (() => {
loadData();
}, []);
return [book, loadData];
};
export default useResults;