我正在构建一个React组件,它接受JSON数据源并创建一个可排序的表.
每个动态数据行都有一个分配给它的唯一键,但我仍然收到以下错误:
数组中的每个子节点都应该具有唯一的"键"支柱.
检查TableComponent的render方法.
我的TableComponentrender方法返回:
<table>
<thead key="thead">
<TableHeader columns={columnNames}/>
</thead>
<tbody key="tbody">
{ rows }
</tbody>
</table>
Run Code Online (Sandbox Code Playgroud)
该TableHeader组件是单行,并且还具有分配给它的唯一键.
每个rowin rows都是使用具有唯一键的组件构建的:
<TableRowItem key={item.id} data={item} columns={columnNames}/>
Run Code Online (Sandbox Code Playgroud)
而TableRowItem看起来像这样:
var TableRowItem = React.createClass({
render: function() {
var td = function() {
return this.props.columns.map(function(c) {
return <td key={this.props.data[c]}>{this.props.data[c]}</td>;
}, this);
}.bind(this);
return (
<tr>{ td(this.props.item) }</tr>
)
}
});
Run Code Online (Sandbox Code Playgroud)
是什么导致了唯一的关键道具错误?
所以我想渲染数组,但它一直说,警告:列表中的每个子项都应该有一个唯一的“key”道具,即使它有唯一的键,我的数组包含三个元素,它甚至不能正确渲染第三个数组,由于某种原因,该按钮甚至无法在第三里工作。
import React, { useEffect, useRef } from "react";
import fire from "./firebase";
import firebase from "firebase"
import { useState } from "react"
import Header from "./header"
import Nav from "./nav"
import { NavLink, Redirect } from "react-router-dom";
import AudioPlayer from "./audioplayer"
const Music = ({ match }) => {
const audioRef = useRef();
const audioPlayer = audioRef.current
const [audioSrc, setAudioSrc] = useState()
const [musics, setMusics] = useState([])
const [user, setUser] = useState(null)
const [pfp, setPfp] = useState(null)
const [audioTitle, …Run Code Online (Sandbox Code Playgroud)