javascript - 我正在将一个 Prop 从 App.js 传递到 MovieCard.js,但传递的 Prop 显示为空

标签 javascript reactjs react-props

完整的github链接-: https://github.com/dhruv354/movie-app.git

我的 App.js

在 App.js 中,我使用 Map 函数迭代数据文件,该文件是一个对象数组并传递 每个对象作为 Moviecard 的 Prop ,但它显示为空

import './App.css'
import React from 'react'
import Navbar from './Navbar'
import MovieCard from './MovieCard'
import data from './data'

function App() {
  return (
    <div className="App">
    <Navbar />
     <div className='main'>
      <div className='tabs'>
        <div className='tab'>Movies</div>
        <div className ='tab'>Favourites</div>
      </div>

      <div className='movie-list'>
        {data.map((movie) => {
          <MovieCard movie = {movie} />
          return ''
        })}
      </div>
     </div>

    </div>
  );
}

export default App;

我的 MovieCard.js

在 Moviecard 中,我正在接收电影对象作为 Prop ,我尝试了控制台日志记录,但它显示为空

import React from 'react';
    import './MovieCard.css';
    
    function MovieCard(props){
            console.log(props)
            const movie = props.movie
            return (
                // <div className='movie-card-container'>
                    <div className='movie-card'>
                        <div className='left'>
                            <img alt='movie-poster' src= {movie.Poster} />
                        </div>
                        <div className='right'>
                            <div className='title'>{movie.Title}</div>
                            <div className='plot'>{movie.Plot}</div>
                            <div className='footer'>
                                <div className='rating'>{movie.Imdb}</div>
                                <button className='favourite-btn'>Favourite</button>
                            </div>
                        </div>
                    </div>
                // </div>
            );
    }
    
    export default MovieCard; 

我的数据.js

这是一个对象数组,其中包含有关电影的信息,例如情节、标题、imdb 及其海报

const data = [
    {
        Plot: 'It is 1941 and the world is in the throes of war. Steve Rogers (Chris Evans) wants to do his part and join Americas armed forces, but the military rejects him because of his small stature',
        Poster: 'https://i.pinimg.com/564x/ae/90/e7/ae90e774ef756936e18dfb287b28dd64.jpg',
        Imdb: 6.9,
        Title: 'Captain America'
    },

    {
        Plot: 'A thief who steals corporate secrets through the use of dream-sharing technology is given the inverse task of planting an idea into the mind of a C.E.O.',
        Poster: 'https://flxt.tmsimg.com/assets/p7825626_p_v10_af.jpg',
        Imdb: 8.8,
        Title: 'Inception'
    }
]

export default data;

请帮忙

最佳答案

在你的 map 函数中你每次都返回一个空字符串:

{data.map((movie) => {
  <MovieCard movie = {movie} />
  return ''
})}

你应该返回 JSX 而不是:

{data.map((movie) => <MovieCard movie = {movie} /> )}

关于javascript - 我正在将一个 Prop 从 App.js 传递到 MovieCard.js,但传递的 Prop 显示为空,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66838678/

相关文章:

reactjs - 关于 super(props) 删除它会破坏代码的 Eslint 警告

javascript - 没有立即收到 Prop

javascript - 基于 props 的初始状态在 React 中总是不好的吗?

reactjs - Cypress.io 身份服务器

javascript - react 状态改变状态使代码从可见变为隐藏

javascript - 随机化并在页面加载时显示给定数量的元素

JavaScript/Ajax/Flash HTTP 请求

javascript - 我应该在 react 组件或 redux Action 中获取数据吗?

javascript - 如何响应 ajax 搜索输出来查看 ~laravel

javascript - jQuery.keypad 性能问题