1
Orders
コンポーネントに子コンポーネントOrdersTable
があります。私のOrders
コンポーネントはOrdersTable
コンポーネントにorders
というオブジェクトの配列を渡します。しかし、子コンポーネントでorders
を使用しようとすると、未定義が返されます。ここでvue.jsコンポーネントで親データが定義されていない
は私Orders
コンポーネント抜粋です。ここ
<template>
<div class="container">
<h1>My Orders</h1>
<orders-table :orders="orders" :token="token"></orders-table>
</div>
</template>
<script>
import OrdersTable from './OrdersTable.vue'
module.exports = {
components: {
OrdersTable
},
data: function() {
return {
orders: '',
token: localStorage.getItem('jwt')
}
},
created: function() {
this.getAllOrders()
},
methods: {
getAllOrders: function() {
var token = localStorage.getItem('jwt')
var self = this
$.ajax({
type: 'GET',
url: 'http://localhost:3000/api/orders',
data: {token: localStorage.getItem('jwt')},
success: function (data) {
self.orders = data
},
error: function (a, b, c) {
console.log(a)
console.log(b)
console.log(c)
}
})
},
},
}
</script>
は私OrdersTable
コンポーネント抜粋です:
<template>
<div class="container">
<v-client-table :data="orders" :columns="columns" :options="options"></v-client-table>
</div>
</template>
<script>
module.exports = {
data: function() {
return {
columns:['order_id', 'po_num','order_date', 'order_total'],
tableData: orders, //returns undefined
options: {
dateColumns: ['order_date'],
headings: {},
},
}
},
created: function() {
console.log('orders:')
console.log(this.orders) //returns undefined
}
props: ['orders']
}
</script>
私は私はので、正しく子コンポーネントに親からデータを渡されたと確信しています何が起こっているのかわからない...誰かが助けることができる?
ありがとうございます!
にあるだろうという保証はありませんはい - 私はそれが非同期と関係があるかもしれないと思った...私はthis.ordersを使用する前にデータがロードされていることを確認できる方法はありますか? –
[watch](http://vuejs.org/api/#watch)を使ってプロパティの変更を監視することができます。これにより、小道具が変更されたときにハンドラーが常に呼び出されます。 'v-for'のようにテンプレート内の' orders'を使うだけで、 'orders'が変わるたびにVueがdomを更新するようにしてくれます。 – pkawiak
、ありがとう!!!! –