似乎无法使用点或数组表示法在 javascript 中访问对象中的值

所以我从外部 api (omdbapi) 获取数据,确切的数据如下所示,标题为 Star:


{"Search":[{"Title":"Star Wars: Episode IV - A New Hope","Year":"1977","imdbID":"tt0076759","Type":"movie","Poster":"https://m.media-amazon.com/images/M/MV5BNzVlY2MwMjktM2E4OS00Y2Y3LWE3ZjctYzhkZGM3YzA1ZWM2XkEyXkFqcGdeQXVyNzkwMjQ5NzM@._V1_SX300.jpg"},{"Title":"Star Wars: Episode V - The Empire Strikes Back","Year":"1980","imdbID":"tt0080684","Type":"movie","Poster":"https://m.media-amazon.com/images/M/MV5BYmU1NDRjNDgtMzhiMi00NjZmLTg5NGItZDNiZjU5NTU4OTE0XkEyXkFqcGdeQXVyNzkwMjQ5NzM@._V1_SX300.jpg"},{"Title":"Star Wars: Episode VI - Return of the Jedi","Year":"1983","imdbID":"tt0086190","Type":"movie","Poster":"https://m.media-amazon.com/images/M/MV5BOWZlMjFiYzgtMTUzNC00Y2IzLTk1NTMtZmNhMTczNTk0ODk1XkEyXkFqcGdeQXVyNTAyODkwOQ@@._V1_SX300.jpg"},{"Title":"Star Wars: Episode VII - The Force Awakens","Year":"2015","imdbID":"tt2488496","Type":"movie","Poster":"https://m.media-amazon.com/images/M/MV5BOTAzODEzNDAzMl5BMl5BanBnXkFtZTgwMDU1MTgzNzE@._V1_SX300.jpg"},{"Title":"Star Wars: Episode I - The Phantom Menace","Year":"1999","imdbID":"tt0120915","Type":"movie","Poster":"https://m.media-amazon.com/images/M/MV5BYTRhNjcwNWQtMGJmMi00NmQyLWE2YzItODVmMTdjNWI0ZDA2XkEyXkFqcGdeQXVyNTAyODkwOQ@@._V1_SX300.jpg"},

我是在 react native 中做的,这个名为 movies 的对象正在作为道具传递。代码如下:


const MoviesList = props => {


    return 

    <Text>

        {props.movies.Search.forEach((movie) => {

            movie.Title

        })}

    </Text>

}   

我得到的只是undefined没有呈现任何数据。


不负相思意
浏览 76回答 1
1回答

ITMISS

当您尝试渲染子元素/组件时,您无法使用forEach,因为 forEach 实际上并没有返回任何新内容,它只是循环通过现有集合。您可以在项目循环时对其进行更改,但不会创建或返回新集合。你应该map改用。我不确定是什么Text,例如它是您自己的组件还是来自库,但如果它是您自己的组件并且您想在该组件中呈现标题,则应该将循环包装在<Text>组件中,而不是将标题传递给<Text>.请参阅下面的MoviesList.js<div>&nbsp; {props.movies.Search.map((movie) => {&nbsp; &nbsp; return <Text title={movie.Title}/>&nbsp; })}</div>我为完整代码制作了一个代码沙箱。编辑如果来自 API 的响应以字符串而不是对象的形式返回,您可以使用JSON.parse(YOUR_RESULTS)将字符串转换为对象。要查看结果是否实际上是一个字符串,您可以执行YOUR_RESULTS.split("")并查看是否返回了一个数组。你也可以这样做console.log(typeof YOUR_RESULTS)。如果它实际上是一个字符串,"string"则会在控制台中记录。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript