私はVue Resourceを使用して、REST APIからイメージコレクションを取得しています。リクエストは、私のVueコンポーネントのフックcreated
で送信されます。データがロードされる前にマウントされたメソッドが起動される - VueJS
問題は、私はmounted
フックで取得したデータにアクセスしようとしていますが、データがロードされていないことです。
私は、コンソールにこのエラーが表示されます。ここでは
[Vue warn]: Error in mounted hook: "TypeError: Cannot read property 'forEach' of undefined"
は私のコンポーネントです:
<script>
export default {
data() {
return { imgs : '' };
},
created() {
// the full url is declare in my main.js
this.imgs = this.$resource('acf/v3/pages/4');
this.imgs.query().then((response) => {
console.log('success', response);
this.imgs = response.data.acf.gallery;
}, (response) => {
console.log('erreur', response);
});
},
mounted() {
// get the ref="image" in my dom template
let imgs = this.$refs.image;
imgs.forEach((img) => {
// I do some stuff with imgs
});
}
}
</script>
私はmounted
のコンテンツの周囲setTimeout
をラップした場合、すべてが正常に動作します。
したがって、mounted
フックが実行される前にデータがロードされるのを待つ方法がわかりません。これはVueのライフサイクルフックの役割ではありませんか?
なぜ、created()を使用しないのですか? – samayo
'created'には何も反応しないので。 'mounted'フックの前にDOMを操作することはできません。 [この文書をチェック](https://alligator.io/vuejs/component-lifecycle/)。これは、lifCycleフックを1つだけ使用する場合とまったく同じ問題です。私のコンテンツは、私がそれを使いたいときに読み込まれません。 – BrownBe