J'essaie de transmettre des données d'un parent à un composant enfant. Cependant, les données que j'essaie de transmettre continuent de s'imprimer comme vides dans le composant enfant. Mon code:
Dans Profile.js
(Composant parent)
<template>
<div class="container">
<profile-form :user ="user"></profile-form>
</div>
</template>
<script>
import ProfileForm from './ProfileForm'
module.exports = {
data: function () {
return {
user: ''
}
},
methods: {
getCurrentUser: function () {
var self = this
auth.getCurrentUser(function(person) {
self.user = person
})
},
}
</script>
Dans ProfileForm.js
(Composant enfant)
<template>
<div class="container">
<h1>Profile Form Component</h1>
</div>
</template>
<script>
module.exports = {
created: function () {
console.log('user data from parent component:')
console.log(this.user) //prints out an empty string
},
}
</script>
Remarque - mon user
est chargé via ma méthode getCurrentUser()
... Quelqu'un peut-il aider?
Merci d'avance!
Pour transmettre des données via des accessoires, vous devez les déclarer dans le composant enfant :
module.exports = {
props: ['user'],
created: function () {
console.log('user data from parent component:')
console.log(this.user) //prints out an empty string
}
}
Veuillez noter ce qui suit:
Composant parent ...
<template>
<div class="container">
<profile-form :user="user"></profile-form>
</div>
</template>
<script>
import ProfileForm from './ProfileForm'
Vue.component('profile-form', ProfileForm);
export default {
data: function () {
return {
user: ''
}
},
methods: {
getCurrentUser: function () {
auth.getCurrentUser(function(person) {
this.user = person
})
},
created: function() {
this.getCurrentUser();
},
}
</script>
Composant enfant ...
<template>
<div class="container">
<h1>Profile Form Component</h1>
</div>
</template>
<script>
export default {
props: ['user'],
created: function () {
console.log('user data from parent component:')
console.log(this.user) //prints out an empty string
},
}
</script>