невозможно отобразить массив json, импортированный из mongodb с помощью mongoose - PullRequest
0 голосов
/ 20 марта 2020

Я новичок в использовании React и сейчас прохожу курс в школе. Моя проблема в том, что я настроил файл api js, который подключается к базе данных mongodb, и у меня также есть маршрут к коллекции. Затем в ReactContext я пытаюсь получить коллекцию, и это работает. Моя проблема в том, что когда я пытаюсь отобразить его из моего компонента MovieList, я получаю «Не удается прочитать свойство 'map' of undefined». Я записал в консоль свой json и получаю документы коллекции, но каким-то образом, когда ReactContext возвращает его, он становится неопределенным?

Код:

      //  let response = await fetch('/api/movies/')
      //  response = await response.json()
      //  return response
      var response = await fetch('/api/movies/')
      var data = await response.json()
      console.log(data)
      return data
    }

    const test = () => {
        let data = getMovies()
        console.log(data)
    }

    const [movies2, setMovies2] = useState(getMovies)

    return (
        <MovieContext.Provider value={{movies2}}>
            {props.children}
        </MovieContext.Provider>
    ) ```
Can someone see what the problem is?
When I used a dummy data in a const variable with the data it works.

This is the code which calls "map()".
```const list = () => {
        return movies.map((movie, i) => {
            return (
                <Card
                    key={movie.title + i}
                    body
                    inverse
                    className="mb-2"
                    style={{
                        backgroundColor: '#330000',
                        borderColor: '#FF0000'
                    }}
                >
                <Container>
                    <Row>
                        <img style={{
                            height: '100px'
                        }}  
                        src={movie.image} 
                        alt="movie"></img>
                        <Col>
                            <CardTitle>Titel: <br></br>{ movie.title }</CardTitle>
                            <CardText>Om: <br></br>{ movie.about }</CardText>
                            <CardText>Åldersgräns: <br></br>{ movie.age_limit }</CardText>
                            <CardText>Längd: <br></br>{ movie.length }</CardText>
                            <CardText>Pris: <br></br>{ movie.ticket_price }</CardText>
                            <div>
                                <ModalVideo channel='youtube' isOpen={isOpen} videoId={movie.movieTrailer} onClose={toggleIsOpen} />
                                <Button onClick={toggleIsOpen}>Spela Trailer</Button>
                            </div>
                        </Col>
                    </Row>
                </Container>
                </Card>
            )
        })
    }```

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...