javascript - React 获取 API 数据到组件

标签 javascript reactjs fetch-api map-function

我正在尝试从“电影数据库”API 制作一个应用程序。 我遇到了一个小问题。 我有两个组件。首先,我使用 fetch 并使用 Card 组件的 map() 函数,我希望在其中显示来自 API 的数据。如何正确连接它们?

https://codesandbox.io/s/p3vxqqz53q

渲染列表的第一个组件:

import React, { Component } from 'react';
import Card from "./Card";

class ListApp extends Component {
    constructor(props){
        super(props);
        this.state = {
            items: [],
            isLoaded: false,
        }
    };
    componentDidMount = () => {
        fetch("https://api.themoviedb.org/3/movie/popular?api_key=xxxxxxxx&page=1")
        .then(resp => resp.json())
        .then(resp => {
            this.setState({
                isLoaded: true,
                items: resp.results
            })
            console.log(this.state.items)      
    })};

    render() {
        var {isLoaded, items} = this.state;
        return (
            <div>
                {items.map( () => ( <Card/> ) )};
            </div>
        );
    }
}

export default ListApp;

第二个组件卡:

import React from 'react';

const Card = (items) => { 
        return (
            <div className="movie-container">
                <img src="https://image.tmdb.org/t/p/w185/{items.poster_path}" alt="NO PHOTO" className="movie-container__img" />
                <div className="movie-container__about">
                    <span className="movie-container__percent">{items.vote_average}</span>
                    <h2 className="movie-container__title">{items.original_title}</h2>
                    <p className="movie-container__date">{items.release_date}</p>
                    <p className="movie-container__text">{items.overview}</p>
                    <a href="https://www.themoviedb.org/movie/" className="movie-container__more">MORE</a>
                </div>
            </div>
            )
}

export default Card;

最佳答案

您需要将 item 对象作为 prop 传递给 Card 组件,如

{items.map(item => <Card key={item.id} item={item} /> )}

然后从卡片组件中访问item,例如

const Card = (props) => {
  const {item} = props;
  ...

}

关于javascript - React 获取 API 数据到组件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53981004/

相关文章:

javascript - 如何阻止 'id' 标签自动插入我的代码中?

javascript - 如何用CSS缩放一个div

javascript - IndexedDB 填充多个 ObjectStore 时,错误 : Failed to execute 'transaction' on 'IDBDatabase' : A version change transaction is running

javascript - 自定义请求 header 未随 JavaScript 获取请求一起发送

javascript - 草案 js.将编辑器内容保存到数据库

javascript - 如何使用 Fetch API 获取/设置多个 'Set-Cookie' header ?

javascript - 在 Knockout 订阅中设置 Breeze 导航属性

javascript - Jquery 实时预览插件点击

reactjs - React Native 获取 Flatlist 索引

javascript - 从输入类型数字中获取无效值