問題
作成したAPIをたたくと下記のようなデータがJSON形式で返ってきます。
JSON
1"data": { 2 "circle":{ 3 "id": "", 4 "circlename": "", 5 } 6}
後述するHTMLで返ってきた値を出力しようとすると、全然出力されず、下記のようなエラーコードが吐かれます。
vue.js:634 [Vue warn]: Error in render: "TypeError: Cannot read property 'circle' of undefined" (found in <Root>)
エラーの吐かれているコード
HTML
1<!DOCTYPE html> 2<html lang="en"> 3 4<head> 5 <meta charset="UTF-8"> 6 <meta name="viewport" content="width=device-width, initial-scale=1.0"> 7 <meta http-equiv="X-UA-Compatible" content="ie=edge"> 8 <script src="https://unpkg.com/axios/dist/axios.min.js"></script> 9 <script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script> 10 <title>Document</title> 11</head> 12 13<body> 14 <main> 15 <div id="app"> 16 <h1>{{ this.result.data.circle.circlename }}</h1> 17 <h2>{{ this.result.data.circle }}</h2> 18 </div> 19 </main> 20 <script> 21 var user = new Vue({ 22 el: "#app", 23 data() { 24 return { 25 result: [] 26 } 27 }, 28 created() { 29 axios.post('URL/', { 30 circle_id: "", 31 user_id: "" 32 }) 33 .then(function (response) { 34 this.result = response; 35 JSON.stringify(this.result); 36 37 // console.log(this.result); 38 // console.log(typeof this.result); => object 39 // console.log(this.result.data); 40 // console.log(typeof this.result.data); => object 41 // console.log(this.result.data.circle); 42 // console.log(typeof this.result.data.circle); => object 43 // console.log(this.result.data.circle.circlename); 44 // console.log(typeof this.result.data.circle.circlename); => string 45 46 }) 47 .catch(function (error) { 48 console.log(error); 49 }); 50 }, 51 mounted() {}, 52 }) 53 </script> 54</body> 55 56</html>
コメントアウトしたconsole.log
はすべて問題なく出力されました。
試したこと
エラーが先にコンソールに吐かれてから、console.log
の結果が出力されるので検討もつかず、何もしていません。
一応、beforeCreateくらいは試しましたが、変わりませんでした。
どの回答に対しても、既に試した、と言われてますが、
質問文に書いて頂かないと、第三者にはまったく分かりません。
回答の無駄打ちがこれ以上起きないうちに、
試したことは全部質問文に記載してください。
質問文は修正できますので。
回答3件
あなたの回答
tips
プレビュー