【发布时间】:2017-04-15 10:15:38
【问题描述】:
我正在尝试使用维基百科 API。我正在使用 Axios 来请求数据。当我通过从 App 的 state 传递的 prop 去映射时,我收到以下错误:
Uncaught TypeError: search.map is not a function
我检查了预期的值是一个数组。看来,我可以在反应开发工具控制台中这样操作它。它还有一个 Array 的原型,所以我很困惑为什么我不能这样做。
根组件:
class App extends React.Component
{
constructor()
{
super();
this.state = {search: {}}
this.wikiSearch();
}
wikiSearch()
{
axios
.get('https://en.wikipedia.org/w/api.php?action=opensearch&search="test"')
.then ((result) => {
result.data.shift();
this.setState({search: result.data});
});
}
render ()
{
return(
<div id="container">
<Header />
<SearchBar />
<SearchList search={this.state.search} />
</div>
);
}
}
export default App;
使用来自 App 的状态数据的组件
class SearchList extends React.Component
{
render()
{
let search = this.props.search;
search.map((element) => {
});
return(
<div id='SearchList'>
</div>
);
}
}
【问题讨论】:
-
因为你在App状态中设置的“搜索”转移的道具是“对象”,而不是数组。
标签: javascript reactjs