ReactJS抛出“ map”未定义错误

时间:2018-11-16 14:51:41

标签: javascript reactjs mapping searchkit

我对JavaScript不太熟悉,但是必须为当前项目在ReactJS中实现一个表。在下面,我得到一个error: map is not defined。我做了一些错误研究,但在这里或在Google上找不到满意的答案。

   render() {
        const { hits } = this.props
        return (
            <div style={{width: '100%', boxSizing: 'border-box', padding: 8}}>
                <table className="sk-table sk-table-striped" style={{width: '100%', boxSizing: 'border-box'}}>
                    <thead>
                        <tr>
                            <th>Title</th>
                            <th>Author</th>
                            <th>Keywords</th>
                        </tr>
                    </thead>
                    <tbody>
            {map(hits, hit => (
              <tr key={hit._id}>
                <td>{hit._source.title}</td>
                <td>{hit._source.year}</td>
                <td>{hit._source.imdbRating}</td>
              </tr>
            ))}
          </tbody>
                </table>
            </div>
        )
    }

有人可以指出我正确的方向吗?

3 个答案:

答案 0 :(得分:1)

您必须在顶部创建的匹配常数上使用map函数。像这样:

{hits.map(hit => (
  <tr key={hit._id}>
    <td>{hit._source.title}</td>
    <td>{hit._source.year}</td>
    <td>{hit._source.imdbRating}</td>
  </tr>
))}

答案 1 :(得分:1)

map是在javascript的Array原型上定义的函数。您正在此处未定义该方法的全局对象上调用map。因此,您会得到未定义的错误。

hits.map可能正是您想要的。

答案 2 :(得分:0)

您是http://docs.searchkit.co/v2.0.0/components/basics/hits.html的例子吗

在这种情况下,您需要声明map ... 放入:

import { map } from 'lodash'

在文件开头,从“ searchkit”导入{....}后