首页 > 解决方案 > TypeError:无法读取未定义的属性“地图”

问题描述

我正在使用 react 为库存管理创建一个基本的 crud 应用程序,但是我在 DataTable.render 上收到此错误

TypeError: Cannot read property 'map' of undefined

它突出显示的代码是这样的

 27 | 
  28 |  render() {
  29 | 
> 30 |    const assets = this.props.assets.map(asset => {
     | ^  31 |      return (
  32 |        <tr key={asset.id}>
  33 |          <th scope="row">{asset.id}</th>

我将如何解决这个问题?

标签: javascriptreactjs

解决方案


看起来你的assets道具是未定义的。做这样的事情

const assets = (this.props.assets || []).map(asset => {

应该阻止错误发生。但是如果不查看完整的组件,真的很难说问题出在哪里。

我猜你正在使用某种 API 获取数据,在这种情况下,理想情况下你应该有某种loadingor empty state,并在道具尚未准备好时表明这一点。

就像是,

...
render() {
  if (this.props.assets === undefined) {
    return <Loading />
  }
  
  const assets = this.props.assets.map(asset => {
...

推荐阅读