TypeError .map()不是一个函数。

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了TypeError .map()不是一个函数。相关的知识,希望对你有一定的参考价值。

新手的问题,来自一个刚开始使用 React.

我有一个 function 的,通过两个道具。

function Turn(author, books) {
  return (<div className="row turn" style={{backgroundColor: "white"}}>
      <div className="col-4 offset-1">
        <img src ={author.imageUrl} className="authorimage" alt="Author"></img>
      </div>
      <div className="col-6">
        {books.map((title) => <p>{title}</p>)}
      </div>
    </div>);
}

在一个单独的... JS 文件中,我有以下内容。

const authors = [
  {
    name: 'Mark Twain',
    imageUrl: 'images/authors/marktwain.jpg',
    imageSource: 'Wikimedia Commons',
    books: ['The Adventures of Huckleberry Finn']
  }
];

const state = {
  turnData: {
    author: authors[0],
    books: authors[0].books
  }
};

ReactDOM.render(
  <React.StrictMode>
    <AuthorQuiz {...state} />
  </React.StrictMode>,
  document.getElementById('root')
);

Turn 被渲染成了以下文件的一部分 AuthorQuiz 函数,通过 turnData 状态为道具,如下图。

function AuthorQuiz({turnData}) {
  return (
    <div className="container-fluid">
      <Hero/>
      <Turn {...turnData}/>
      <Continue/>
      <Footer />
    </div>
  );
}

然后运行这个 localhost,我明白了。

enter image description here

这是否有什么关系如何 books 是宣布的吗?悬停在 books 在我的状态变量中,它显示为一个 string[]. 任何帮助解除这种情况将是非常感激的。

答案

替换为:

function Turn(author, books) {

改为:

function Turn({ author, books }) {

这是一个道具对象,不是单独的参数。

以上是关于TypeError .map()不是一个函数。的主要内容,如果未能解决你的问题,请参考以下文章

TypeError:list.map 不是函数

未捕获的TypeError:(中间值).map不是函数[重复]

TypeError:props.tracks.map 不是函数

TypeError:accounts.map不是一个函数[关闭]

React:TypeError:this.props.courses.map不是函数

TypeError:this.state.persons.map 不是函数