【发布时间】:2020-02-11 22:15:10
【问题描述】:
这是我的代码。我可以获取数据(对象),但是在尝试映射时出现以下错误: 类型错误:filme.map 不是函数。 输出应该类似于 {“标题”:“复仇者联盟”,“年份”:“2012”,“额定”:“PG-13”,“已发布”:“2012 年 5 月 4 日”,“运行时间”:“143 分钟”}
import React, { useEffect, useState } from 'react';
import Filme from './Filme';
import "./App.css";
function App() {
const [filme, setFilme] = useState([]);
useEffect( () =>{
getFilme();
},[]);
const getFilme = async () => {
const antwort = await fetch(
'http://www.omdbapi.com/?t=avengers&apikey=xxxx'
);
const data = await antwort.json();
setFilme(data.Title);
console.log(data.Title);
};
//fetch(LINK ZU IMDB DATENBANK)
//.then(antwort => { response.json })
return (
<div className="App">
<form className="search-form">
<input className="search-bar" type="text" />
<button className="search-button" type="submit">Button</button>
</form>
{filme.map(filmDat => (
<Filme />
))}
</div>
);
};
export default App;
【问题讨论】:
-
filme开始是一个空数组,但您是说它稍后被分配了一个对象。如果这是真的,那么你不能使用map。map只属于数组。 -
是否有对象替代地图?
-
setFilme(data.Title)这似乎也很可疑。您是否将其设置为字符串? -
看起来你将字符串(电影标题)分配给
film内getFilme()正文:setFilme(data.Title),所以你不能map()字符串 -
如果对象是从API返回的,你应该把它全部分配给
data,就像setFilme(data),如果你想map()它的所有属性,使用一些东西,比如@987654333 @
标签: javascript reactjs dictionary object