node-red-dashboard icon indicating copy to clipboard operation
node-red-dashboard copied to clipboard

v-table & v-data-table static examples not working

Open joepavitt opened this issue 1 year ago • 2 comments

Description

https://discourse.nodered.org/t/vuetify-tables-in-dashboard-2/85791

Note this is using the example from the documentation of Vuetify: https://vuetifyjs.com/en/components/tables/#usage

Have you provided an initial effort estimate for this issue?

I have provided an initial effort estimate

joepavitt avatar Feb 23 '24 08:02 joepavitt

<template>
    <div v-for="item in desserts" :key="item.name">{{ item }}</div>
    <v-data-table>
        <thead>
            <tr>
                <th class="text-left">
                    Name
                </th>
                <th class="text-left">
                    Calories
                </th>
            </tr>
        </thead>
        <tbody>
            <tr v-for="item in desserts" :key="item?.name">
                <td>{{ item?.name }}</td>
                <td>{{ item?.calories }}</td>
            </tr>
        </tbody>
    </v-data-table>
</template>
<script>
  export default {
    data () {
        return {
          desserts:  [
            {
              name: 'Frozen Yogurt',
              calories: 159,
            },
            {
              name: 'Ice cream sandwich',
              calories: 237,
            },
            {
              name: 'Eclair',
              calories: 262,
            },
            {
              name: 'Cupcake',
              calories: 305,
            },
            {
              name: 'Gingerbread',
              calories: 356,
            },
            {
              name: 'Jelly bean',
              calories: 375,
            },
            {
              name: 'Lollipop',
              calories: 392,
            },
            {
              name: 'Honeycomb',
              calories: 408,
            },
            {
              name: 'Donut',
              calories: 452,
            },
            {
              name: 'KitKat',
              calories: 518,
            }
          ]
        }
    }
  }
</script>

If we just do a direct loop (outside of the Vuetify component), then this renders without any issues:

Screenshot 2024-02-23 at 08 22 54

So something about how the loop inside the Vuetify component runs is causing our problems.

joepavitt avatar Feb 23 '24 08:02 joepavitt

Workaround is to use the :items property of a v-data-table

joepavitt avatar Mar 13 '24 13:03 joepavitt