前提・実現したいこと
下記URLを参考にAPIによるデータの取得をやっていたのですが、useStateにユーザー情報は入るのですが、その中からidとかを取り出そうとするとundefinedになり取り出せません。
https://reffect.co.jp/laravel/laravel6-react-router#i-3
発生している問題・エラーメッセージ
app.js:70681 レンダリング app.js:70722 undefined app.js:70699 実行中 app.js:70681 レンダリング app.js:70722 undefined app.js:70681 レンダリング app.js:70722 undefined app.js:70706 成功
該当のソースコード
React
1function Profile(props){ 2 console.log("レンダリング"); 3 const [user, setUser] = useState([]); 4 5 useEffect(() => {getUser()},[]) 6 7 const getUser = async () => { 8 console.log("実行中") 9 const response = await axios.get(`/api/user/${props.match.params.username}`); 10 setUser(response.data) 11 console.log("成功"); 12 } 13 console.log(user.id);
試したこと
console.log(user);にしてみると以下のように変わりました。
app.js:70681 レンダリング app.js:70722 [] app.js:70699 実行中 app.js:70681 レンダリング app.js:70722 [{…}]0: {id: 1, screen_name: "@test_user1", name: "TEST1", profile_image: "https://placehold.jp/50x50.png", email: "test1@test.com", …}length: 1__proto__: Array(0) app.js:70706 成功
最初には空配列でその後useEffectが実行され、APIでユーザー情報が取得できるまではわかるのですが、なぜ参考記事ではその中の値が取り出せ、自分の場合は取り出せないのかがわかりません。
補足情報(FW/ツールのバージョンなど)
React/16.2.0
react-dom/16.2.0
axios/0.19
回答1件
あなたの回答
tips
プレビュー