こんにちは。
今SpotifyAPI + Reactで楽曲の詳細情報がわかるポートフォリオを作成しているのですが、
取得したデータを画面に描画する方法がわからず詰まっております。
App.js
1import React, { useState, useEffect } from "react"; 2import Header from "../Molecules/Header"; 3import { Credentials } from "../Credentials"; 4import axios from "axios"; 5import { useLocation } from "react-router-dom"; 6 7const Search = () => { 8 // test 9 const spotify = Credentials(); 10 11 const [token, setToken] = useState(""); 12 const [trackContents, setTracksContents] = useState( 13 [] 14 ); 15 16 const location = useLocation(); 17 18 useEffect(() => { 19//検索された文字をURLに反映し、反映された文字列を取得 20 const searchParams = new URLSearchParams(location.search); 21 const queryResult = searchParams.get("query"); 22 console.log(queryResult); 23 24 // tokenを発行し、権限を付与 25 // 付与されたTokenをuseStateのtokenに代入し、値を保持 26 axios("https://accounts.spotify.com/api/token", { 27 headers: { 28 "Content-Type": "application/x-www-form-urlencoded", 29 Authorization: 30 "Basic " + btoa(spotify.ClientId + ":" + spotify.ClientSecret), 31 }, 32 data: "grant_type=client_credentials", 33 method: "POST", 34 }).then((tokenResponse) => { 35 console.log(tokenResponse.data.access_token); 36 setToken(tokenResponse.data.access_token); 37 38 // 付与されたtokenを使い、楽曲情報にアクセス 39 // 取得した楽曲情報をstateに保存 40 // eslint-disable-next-line no-undef 41 axios(`https://api.spotify.com/v1/audio-features?ids=${queryResult}`, { 42 method: "GET", 43 headers: { Authorization: "Bearer " + tokenResponse.data.access_token }, 44 }).then((tracksReaponse) => { 45 setTracksContents( 46 tracksReaponse.data.audio_features 47 ); 48 }); 49 }); 50 }, [location.search, spotify.ClientId, spotify.ClientSecret]); 51 52 // test end 53 54console.log(trackContents) 55 56 57 return ( 58 <div> 59 <Header /> 60 <h2>{trackContents.id}hello</h2> 61 </div> 62 ); 63}; 64 65export default Search; 66
console.logでデータが取得できているか確認したところ、
下記のように無事取得できています。
取得した情報を画面に表示したいのですが、
<h2>{trackContents.id}hello</h2>
としても、画面に表示されません。
(helloは表示されています)
非常に初歩的な質問で申し訳ございませんが、
どなたか表示方法をご教授いただけないでしょうか。
よろしくお願いいたします。
回答1件
あなたの回答
tips
プレビュー