简体   繁体   English

我正在将一个道具从 App.js 传递给 MovieCard.js,但传递的道具显示为空

[英]I am passing a prop from App.js to MovieCard.js but props passed is showing empty

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

My App.js我的 App.js

In App.js i am using Map function to iterate over data file which is a array of objects and passing each object as a prop to Moviecard but it is showing empty在 App.js 中,我使用 Map function 来迭代作为对象数组的数据文件,并将每个 object 作为道具传递给 Moviecard,但它显示为空

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;

My MovieCard.js我的 MovieCard.js

In Moviecard i am receving movie object as a prop, i tried console logging but it is showing empty在 Moviecard 中,我正在接收电影 object 作为道具,我尝试了控制台日志记录,但它显示为空

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; 

my Data.js我的 Data.js

this is a array of objects which is having information about a Movie like Plot, title, imdb and its Poster这是一组对象,其中包含有关电影的信息,例如 Plot、标题、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;

Please help请帮忙

Well inside your map function you are returning an empty string each time:在您的map function 内部,您每次都返回一个空字符串:

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

U should return the JSX instead:你应该返回JSX

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

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

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