React - 必须返回有效的 React 元素(或 null) [英] React - A valid React element (or null) must be returned
问题描述
我有以下 React 组件:
import React, {Component} from 'react';从'jquery'导入$;从redux"导入{bindActionCreators};从'react-redux'导入{connect};类 SamplesInnerLrg 扩展组件 {playSample(参考名称,事件){var idClicked = this.refs[refName];var linkAudio = $(idClicked).children("#myAudio")[0];linkAudio.play();}使成为() {返回 this.props.samples.map((sample) => {返回 (<div key={sample.id} className="sample-comp-lge"><div className="sample-comp-lge-header"><span className="sample-comp-lge-Name">{sample.sampleName}</span><span className="sample-comp-lge-id">{sample.sampleFamily}</span>
<div className="sample-comp-lge-audio" ref={sample.id} onClick={this.playSample.bind(this,sample.id)}><audio preload="auto" id="myAudio"><source src={sample.soundSource} type="audio/wav"/>音频>
<div className="sample-comp-lge-owner">{sample.uploader}</div>
)})}}函数 mapStateToProps(state) {返回 {样本:state.samples};}导出默认连接(mapStateToProps)(SamplesInnerLrg);
这里的问题是我收到错误必须返回有效的 React 元素(或 null)".在这里查看了一些类似的问题后,看起来通常的问题不是将 JSX 包装在父非并行元素中.在我上面的代码中,它与父级一起包装,所以不确定为什么我会收到错误.
值得一提的错误是有问题的组件是 Invariant Violation: SamplesInnerLrg.render()
React 新手,感谢我能得到的所有帮助
React 应该返回一个 HTML 节点.在您的情况下,您将返回一个节点数组.
试试这个:
返回 {this.props.samples.map((sample) => {返回 (<div key={sample.id} className="sample-comp-lge"><div className="sample-comp-lge-header"><span className="sample-comp-lge-Name">{sample.sampleName}</span><span className="sample-comp-lge-id">{sample.sampleFamily}</span><div className="sample-comp-lge-audio" ref={sample.id} onClick={this.playSample.bind(this,sample.id)}><audio preload="auto" id="myAudio"><source src={sample.soundSource} type="audio/wav"/>音频>