javascript - 无法读取未定义的反应/ js的属性
问题描述
我正在学习 React 并将道具从父母传递给孩子等,但我遇到了一个组件问题。在 React 开发工具中,道具通过链正确传递,但是当我在数组(硬编码)上使用 map() 方法时,它返回错误“无法读取未定义的属性。道具在控制台中正确打印,因此我不明白这个错误来自哪里。
这就是我所做的:
- 我在 App 组件中创建了一个 State
- 状态被传递给 SearchResults => TrackList
- 最后一步应该是在 Tracklist 组件上使用 map 方法,并将 prop 的每个元素传递给 Track 组件 => 这就是错误所在
这里是 github 的链接,这里是我的文件的 github 链接,https://github.com/aspnet82/jamming
谢谢你的帮助
解决方案
问题出在您的PlayList
组件上。您的TrackList
组件期望tracks
作为道具,并且您没有在PlayList
组件中传递它。
曲目列表组件
import React from "react";
import "./Tracklist.css";
import Track from '../Track/Track.js';
class TrackList extends React.Component {
render() {
return (
<div className="Tracklist">
{
this.props.tracks.map(track => {
console.log(track)
return <Track track={track} key={track.id}/>
})
}
</div>
)
}
}
export default TrackList ;
播放列表组件
import React from "react";
import "./Playlist.css";
import Tracklist from '../TrackList/Tracklist.js';
class Playlist extends React.Component {
render() {
return (
<div className="Playlist">
<input value="New Playlist" />
<Tracklist tracks={ARRAY_OF_TRACKS} /> // Pass Array of tracks here.
<button className="Playlist-save">SAVE TO SPOTIFY</button>
</div>
);
}
}
export default Playlist;
推荐阅读
- python - 分类特征的聚合函数 group_by
- python - 如何从我的 virtualenv 中获取 pip 以安装到 virtualenv
- javascript - Axios VS Postman 请求得到不同的响应
- mysql - MySQL 在 DDL 语句期间是否会停止整个集群?
- python - 我们如何使使用 RNN 的预测 - 使用 python 的 LSTM 更加一致?
- javascript - Express:在服务中抛出错误时指定 HTTP 状态码
- apache-spark - Kubernetes 上的 Spark + Zeppelin
- javascript - CSS:按钮上的文本略微偏离中心
- css - 我如何使用 css 使我的 Grid 模板适合列
- angular - Nginx Cors Angular9 RestApi