React props が渡せない
以下の様なコンポーネントなのですが、
axios でオブジェクトを取得 -> stateに代入 -> state を props として子コンポーネントに渡す -> 子コンポーネントでそれを表示
という流れを期待していますが、子コンポーネントに渡すときに、正常に渡されていないようです。
chrome のコンソールには以下のエラーが吐かれています。
(Uncaught TypeError: Cannot read properties of undefined (reading 'id'))
axios でデータを受け取る前に子コンポーネントに渡しているから、上記のエラーが出ていると考えているのですが正しいでしょうか。
そうだとするなら、axios で受け取ってから渡すコードはどう書けばよいでしょうか?
【親コンポーネント】
React
1import React from 'react'; 2import axios from 'axios'; 3import { Res } from './Res'; 4 5const url = 'https://api.example/test'; 6function Example() { 7 const [res, setRes] = React.useState({}); 8 React.useLayoutEffect(() => { 9 const fetchData = async () => { 10 const response = await axios.get(url); 11 setRes(response.data); 12 }; 13 fetchData(); 14 }, []); 15 console.log(res); 16 return ( 17 <> 18 <Res res01={ res.01 } res02={ res.02 } /> 19 </> 20 ); 21}
【子コンポーネント】
React
1import React from 'react'; 2 3export const Res = ({ res01, res02 }) => { 4 return ( 5 <> 6 <div>{ res01.id }</div> 7 ...以下略... 8 </> 9 ); 10}
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。