javascript - 父数据未在 vue.js 组件中定义

标签 javascript components vue.js

我有一个 Orders 组件,它有一个子 OrdersTable 组件。我的 Orders 组件将一个名为 orders 的对象数组传递到我的 OrdersTable 组件。但是,当我尝试在子组件中使用 orders 时,它返回未定义。

这是我的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>

我确定我已正确地将数据从父组件传递到子组件,所以我不太确定发生了什么...有人可以帮忙吗?

提前致谢!

最佳答案

您的代码(至少)有两个问题:

  1. 您正在尝试访问 data 函数中 undefined variable orders。您可以尝试 this.orders 但这也会失败,请参见 2
  2. 您正尝试在 created Hook 中访问 this.orders,但您的数据是使用异步调用获取的,因此不能保证它会在 中>创建

关于javascript - 父数据未在 vue.js 组件中定义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39359643/

相关文章:

javascript - 无法在 'send' 上执行 'xmlhttprequest' 加载失败

javascript - 记录 window.location 中的更改

javascript - 如何使用 d3 选择/连接方法来更改折线图?

javascript - React componentDidUpdate 中,props 和 state 可以同时改变吗?

vue.js - vuetify list-item-group如何取消选择所选记录

javascript - Vuejs : how to manipulate elements using webpack template?

vue.js - Vuejs 3路由器无法读取未定义的属性 'push'

javascript - 为什么 parseInt(013) 返回 11?

repository - 是否有中央 FreePascal/Lazarus 组件存储库?

java - 在 SWT 中禁用组件选择