Как отображать более одного mov ie на экране, а не просто отображать один mov ie из API moviesDB в react native? - PullRequest
0 голосов
/ 06 мая 2020

Я пытаюсь извлечь все «original_title» из массива объектов, которые я получаю из вызова API, и отобразить их в плоском списке. Я использую React Native. Я пытаюсь занести в console.log данные api и вижу, что на самом деле я являюсь массивом объектов, которые имеют данные "original_title", которые мне нужны. Однако, похоже, я могу получать только по одному. Я хочу знать, как мне извлечь несколько "original_title" из массива объектов. Пожалуйста, посмотрите мой код ниже.

import React, { useState, useEffect } from "react";
import { View, Text, StyleSheet, FlatList} from "react-native";
import axios from "axios";

const HomeScreen =()=> {
    const API_KEY1="hidden";
    const API_KEY2="hidden";
    const [movies, setMovies] = useState([]);


    useEffect(()=> {
        const fetchData = async () => {
            const response = await axios.get(`https://api.themoviedb.org/3/movie/popular?api_key=${API_KEY2}`);
            setMovies([response.data]);
            console.log("RESPONSE.DATA!!!!" ,response.data)
            console.log("RESPONSE.DATA.Results[0]!!!!" ,response.data.results[0])
        }

        fetchData();

    }, [])


    return(
        <View style={styles.screen}>
            <FlatList data={movies} renderItem={({item})=> {
                return <Text>{[item.results.title]}</Text>
            }}/>
        </View>
    )
}

const styles = StyleSheet.create({
    screen: {
        flex: 1,
        justifyContent:"center",
        alignItems:"center"
    }
})

export default HomeScreen;

enter image description here

console.log (response.data) console.log (response.data.results [0] )

enter image description here

Я просто хочу знать, как я могу извлечь всю эту информацию "original_title" и вывести ее в плоский список. Спасибо!

1 Ответ

1 голос
/ 06 мая 2020

Я думаю, проблема в том, что Вы устанавливаете состояние фильмов на [response.data]. Что равняется массиву с одним элементом - целым ответом, который вы получаете от сервера. Вместо этого попробуйте

setMovies(response.data.results)

и в своей функции рендеринга

return <Text>{item.original_title}</Text>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...