前提・実現したいこと
computed内でaxiosのGET通信から値を取得して表示したい。
※computedのメソッドはリアクティブに検知されているものとします。
以下はvueファイルのtemplate部分です。
vue
1<template> 2 <div>{{ computedTest }}<div> 3</template>
試したこと
- computed内にcomputedTest()というメソッドを作り、何もしないで任意の文字列をreturnした。
→ 文字列がそのまま表示された。(OK)
js
1computed: { 2 computedTest() { 3 let aa = 'あああ'; 4 return aa; 5 } 6} 7// あああ
- axiosを使ってGET通信
→ 何も表示されない。
js
1computed: { 2 computedTest() { 3 let aa = ''; 4 axios.get('xxxxx').then(function(res) { 5 aa = res.data.xxx; 6 }); 7 return aa; 8 } 9} 10// 非同期通信なので、先に「return aa」が走ってしまうため、''が表示される。
質問
上記の「試したこと」の2番目を改善し、async/awaitを使ってaxios通信が完了してから「return aa」するようにしましたが、何も表示されません。
考え方、やり方が間違っているのでしょうか?
js
1computed: { 2 async computedTest() { 3 let aa = ''; 4 await axios.get('xxxxx').then(function(res) { 5 aa = res.data.xxx; 6 }); 7 return aa; 8 } 9} 10// 何も表示されない
宜しくお願い致します。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/03/30 05:41