未捕获的类型错误:无法读取未定义的属性(读取‘0’)
2022-06-11
6556
我不知道为什么会出现此错误,我相信逻辑没有问题。
matchData[0] 包含此信息:
{ players: ["Disguised Lizard", "DrSpiteful"],
winner: "DrSpiteful",
scoreDifference: 1
}
以下是包含 Match(props) 信息的逻辑:
import React from 'react';
import Match from './Match';
import matchData from '../data/matchData';
function MatchList(props) {
const oneMatch = matchData[0];
console.log(oneMatch);
return (
<section className="PlayerList MatchList">
<h1>Match list</h1>
<Match
players={oneMatch.players}
winner={oneMatch.winner}
scoreDifference={oneMatch.scoreDifference}
/>
</section>
);
}
export default MatchList;
我遇到了从以下代码中提取的此行
{props.players[0]} <span>vs</span> {props.players[1]>
问题:
import React from 'react';
function Match(props) {
return (
<article className="Match">
<h1>
{props.players[0]} <span>vs</span> {props.players[1]}
</h1>
{/* To be shown when there is a winner */}
<h2>
{props.winner} is the winner by {props.scoreDifference}!
</h2>
{/* To be shown when there is no winner */}
<h2>No winners yet!</h2>
</article>
);
}
export default Match;
有人可以指出我做错了什么吗,老实说,我没有看到问题所在。
3个回答
你可以试试这个代码。希望这个代码能帮到你。
props[players][0]
Tamal Mallick
2022-06-11
*** 编辑: 我决定不直接使用索引访问数据,而是使用循环 ***
React 似乎存在问题。
当我控制台记录时
{console.log(props.players[0])} <span>vs</span> {console.log(props.players[1])}
它返回了相应的信息:
Disguised Lizard vs DrSpiteful
但是,我的 React 应用程序崩溃了,并显示:
Match.js:6 Uncaught TypeError: Cannot read properties of undefined (reading '0')
jhoangqm
2022-06-11
希望它能起作用。 {props.players.length == 0 ? "" : props.players[0]} vs {props.players.length == 0 ? "" : props.players[1]
ghostCommander
2022-06-11