为什么反应会返回TypeError:无法正确读取未定义的'join'?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了为什么反应会返回TypeError:无法正确读取未定义的'join'?相关的知识,希望对你有一定的参考价值。

我需要在下面显示书籍清单以及作者姓名。

如果有多个作者,我需要分开他们的名字,并且我试图使用.join()。

代码下面没有.join()的部分:


<select
  onChange=(event) => this.props.changeShelf(
   this.props.book, event.target.value
  )
  value=this.props.actualShelf
>
  <option value='move' disabled>Move to...</option>
  <option value='currentlyReading'>Currently Reading</option>
  <option value='wantToRead'>Want to Read</option>
  <option value='read'>Read</option>
  <option value='none'>None</option>
</select>
</div>
  </div>
    <div className='book-title'>this.props.book.title</div>
    <div className='book-authors'>this.props.book.authors</div>                  
  </div>            
);


然后是带有.join()的代码:


<select
  onChange=(event) => this.props.changeShelf(
   this.props.book, event.target.value
  )
  value=this.props.actualShelf
>
  <option value='move' disabled>Move to...</option>
  <option value='currentlyReading'>Currently Reading</option>
  <option value='wantToRead'>Want to Read</option>
  <option value='read'>Read</option>
  <option value='none'>None</option>
</select>
</div>
  </div>
    <div className='book-title'>this.props.book.title</div>
    <div className='book-authors'>this.props.book.authors.join(', ')</div>                  
  </div>            
);

我的问题是,如果我不使用.join(),则该页面运行良好,但是当我插入.join()时,该页面最初会运行,但是当我进入搜索页面并尝试查找一个本书中,出现以下错误:"TypeError: Cannot read properly 'join' of undefined"。我该怎么做才能解决这个问题?

Obs。 1:我没有输入完整的代码,但是如果您需要从一开始就看到它,请告诉我,我将编辑此帖子。

Obs。 2:该组件不是无状态组件,而是类组件,因此如果您需要此处显示的整个组件,请告诉我。

答案

这是引发错误的JS本机,仅仅是因为有undefined对象

this.props.book.authors && this.props.book.authors.join(', ')

也许您遇到一本书没有作者的情况?

以上是关于为什么反应会返回TypeError:无法正确读取未定义的'join'?的主要内容,如果未能解决你的问题,请参考以下文章

TypeError:无法读取未定义 Firebase 存储反应的属性“参考”

反应:TypeError:无法读取未定义的属性“状态”。需要说明

未处理的拒绝(TypeError):无法读取未定义的属性“映射”? (反应火力基地)

错误:未捕获 [TypeError:无法读取未定义 Jest 反应测试的属性“x”

TypeError:无法读取 null 的属性(读取“classList”)反应

尝试通过反应上传到 Firebase 存储。 TypeError:无法读取未定义的属性(读取'ref')