我正在尝试与Wikipedia API一起玩。我正在使用Axios向数据请求。当我通过从应用程序的状态传递的道具映射时,我会收到以下错误:
Uncaught TypeError: search.map is not a function
我已经检查了预期值是一个数组。似乎是,我可以在React Dev工具控制台中进行操作。它也有一个数组的原始,所以我为何不能这样做感到困惑。
根组件:
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>
);
}
}
您需要在您的组件状态下初始化 search
为空数组变量,而不是对象,这样它就不会像这样调用 map
方法时抛出erro:
this.state = {search: []}
不喜欢这样:
this.state = {search: {}}