Я жестко запрограммировал следующий массив с именем searchResults только для тестирования:
function App() {
const [searchResults, setSearchResults] = useState([{
name: 'Jamming',
artist: 'Bob Marley',
album: 'Jamming',
id: 0
}, {
name: 'Paradise',
artist: 'Coldplay',
album: 'One',
id: 1
}]);
const [playlistName, setPlaylistName] = useState('My Playlist');
const [playlistTracks, setPlaylistTracks] = useState([{
name: 'Jamming',
artist: 'Bob Marley',
album: 'Jamming',
id: 0
}]);
function addTrack(track) {
if (playlistTracks.some(el => el.id !== track.id)) {
setPlaylistTracks(playlist => [...playlist, track]);
} else {
alert('Track already in the playlist');
}
}
function removeTrack(track) {
let result = playlistTracks.filter(el => el.id !== track.id);
setPlaylistTracks(result);
}
function updatePlaylistName(name) {
setPlaylistName(name);
}
function savePlaylist() {
const trackUris = playlistTracks.map(track => track.uri);
}
function search(term) {
console.log(term);
}
return (
<div>
<h1>Ja<span className="highlight">mm</span>ing</h1>
<div className="App">
<SearchBar onSearch={search} />
<div className="App-playlist">
<SearchResults
searchResults={searchResults}
onAdd={addTrack}
/>
<Playlist
playlistName={playlistName}
playlistTracks={playlistTracks}
onRemove={removeTrack}
onNameChange={updatePlaylistName}
onSave={savePlaylist}
/>
</div>
</div>
</div>
);
}
export default App;
Я передаю searchResults от App. js до TrackList. js. Итак, от приложения к компоненту SearchResults:
import React from 'react';
import './SearchResults.css';
import TrackList from '../TrackList/TrackList';
function SearchResults({ searchResults, onAdd }) {
return (
<div className="SearchResults">
<h2>Results</h2>
<TrackList searchResults={searchResults} onAdd={onAdd} isRemoval={false} />
</div>
);
}
export default SearchResults;
И, наконец, до TrackList. Если я закомментирую в своем TrackList. js, где я отображаю его, я вижу, что результаты searchResults приходят туда правильно:
If I uncomment the line where I do the maping, I get the error below:
import React from 'react';
import './TrackList.css';
import Track from '../Track/Track';
function TrackList({ searchResults, playlistName, playlistTracks, onAdd, onRemove, isRemoval }) {
return (
{searchResults.map (track => )} ); } экспорт TrackList по умолчанию;
введите описание изображения здесь
Кто-нибудь может увидеть, где я ошибся? Заранее спасибо!