数组映射永远不是函数

甜瓜

我一直在摆弄数组并使用Array.prototype.map()函数映射它们,老实说我一直在努力,所以我希望有人可以分享一些关于这方面的信息。

所以我的目标很简单,在我的自定义组件中映射表中的一些标题和行,但是当我开始进行映射时,它总是说"variable.map() is not a function"事件我指定了它的一个数组,并且它有我从我的页面传递的值。我已经测试过它是否是因为它是空的,但似乎不是那样。

我的页面现在就是这样。

import AppLayout from '../../../components/AppLayout';
import Table from '../../../components/modules/Table';

export default function Products() {
  return (
    <AppLayout>
      <section className="content">
        <h3 className="text-3xl font-bold">Products</h3>
        <Table
          headings={[
            '',
            'Product',
            'Status',
            'Type',
          ]}
        />
      </section>
    </AppLayout>
  );
}

至于我的桌子:

export default function Table(headings = [], rows = {}) {
  const top = headings.map((value) => (
    <th
      key={value}
      scope="col"
      className="px-6 py-3 text-left text-xs font-medium text-gray-500 uppercase tracking-wider"
    >
      {value}
    </th>
  ));

  return (
    <div className="flex flex-col">
      <div className="-my-2 overflow-x-auto sm:-mx-6 lg:-mx-8">
        <div className="py-2 align-middle inline-block min-w-full sm:px-6 lg:px-8">
          <div className="shadow overflow-hidden border-b border-gray-200 sm:rounded-lg">
            <table className="min-w-full divide-y divide-gray-200">
              <thead className="bg-gray-50">
                {top}
              </thead>
              <tbody>
                {rows}
              </tbody>
            </table>
          </div>
        </div>
      </div>
    </div>
  );
}

我在映射数组方面遇到了其他问题,但这是我总是失败的最严重的问题,我不知道为什么这么烦人。

提前致谢

阿巴西森

我检查了你的映射,它工作正常。我认为问题在于您的数据提取。你应该修改你的代码如下:

export default function Table({headings = [], rows = {}}) {

或者

export default function Table(props) {
  {headings, rows} = props;

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章