【问题标题】:TypeError: E.map is not a function reactjsTypeError:E.map 不是函数 reactjs
【发布时间】:2020-07-14 13:23:49
【问题描述】:

我正在使用react js创建一个react应用,但是出现了这个错误,TypeError: E.map is not a function,它运行良好,但是当我尝试部署时我的网站显示该错误。

这是代码。

 <ul className="products">
      {products.map((product) => (
        <li key={product._id}>
          <div className="product">
            <Link to={'/product/' + product._id}>
              <img
                className="product-image"
                src={product.image}
                alt="product"
              />
            </Link>
            <div className="product-name">
              <Link to={'/product/' + product._id}>{product.name}</Link>
            </div>
            <div className="product-brand">{product.brand}</div>
            
            <div className="product-rating">
              <Rating
                value={product.rating}
                text={product.numReviews + ' reviews'}
              />
            </div>
          </div>
        </li>
      ))}
    </ul>

请帮忙解决 谢谢。

【问题讨论】:

标签: node.js reactjs


【解决方案1】:

检查是products 值一个数组,然后映射到它们

你可以这样做

render() {
    if (!Array.isArray(products)) return null
    ... heree your code
}

除了 null,你可以返回类似Products not founds

或者在初始化products时你可以给一个默认值

const { products = [] } = props

但在这种情况下,如果产品来自null,您将收到相同的错误

【讨论】:

  • 嗨,谢谢你的回复,我试过了,但收到一个错误,说产品未定义,
  • 能否请您发送整个文件?例如,您可以将其放入 codesanbox 并在此处放置链接
  • 您可以尝试像这样更新您的代码吗? const { products = [], loading, error } = productList; 或这样的(products || []).map(product =&gt; ...
猜你喜欢
  • 2018-01-28
  • 2015-10-29
  • 2021-12-05
  • 2020-04-05
  • 2021-11-02
  • 2020-04-23
  • 2020-12-12
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多