実現したいこと
- 親でAPIリクエストを実行しそのレスポンスデータをpropsとして、子コンポーネント側のsetupメソッド内でconsole.logを実行して中身を確認したい
- 最終目的はpropsのデータを子コンポーネントで使用する事
前提・状況
- Vue3(Compotition API使用,script setupタグ不使用)
- javascript
- 画面読み込み時に親コンポーネントでAPIリクエストを行い、そのレスポンスを子に渡す
- 親から渡ったpropsを子コンポーネントのtemplateに記述し、表示はできている
発生している問題
子コンポーネントのsetupメソッド内でconsole.log(props)を実行するとコンソールに下記が表示される。
Proxy { プロパティ名:null}
ただし、このproxyの中を見ると、Target配下に欲しい情報が存在しているので取得できてる様には見えます。
ソース
子のコンポーネント
ChildComponet.vue
1<template> 2 <div>{{ data }}</div> 3 </template> 4 5 <script> 6 export default{ 7 props:{ 8 data:{ 9 type: Object, 10 required: true 11 }, 12 setup(props){ 13 console.log(props); 14 } 15 } 16 } 17 </script>
親のコンポーネント
ParentComponent.vue
1<template> 2 <div> 3 <ChildComponet component :data="response" /> 4 </div> 5</template> 6 7<script> 8import axios from 'axios'; 9import { reactive, onMounted} from 'vue'; 10import ChildComponet from '/../src' 11 12export default { 13 name:'Parent', 14 props:{}, 15 components:{ 16 ChildComponet 17 }, 18 setup(){ 19 const response = reactive({ 20 data: null 21 }) 22 23 const fetchAPI = () => { 24 axios.get('/data.json').then((res) => { 25 response.data = res.data; 26 }).catch((error) => { 27 console.log(error); 28 }) 29 } 30 31 onMounted(()=> { 32 fetchAPI(); 33 }) 34 return{ 35 response 36 } 37 } 38} 39</script> 40
補足情報(FW/ツールのバージョンなど)
親のコンポーネントに記載されているAPIリクエストについてですが、APIがまだ作成されておらずaxiosのgetメソッドでjsonファイルを読み込んでいます。
回答1件
あなたの回答
tips
プレビュー