React Untured TypeError:search.map不是函数



我正在尝试与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: {}}

最新更新