Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

v-data-table error cannot create property isRootInsert with remote data

Using documentation example of v-data-table getting Error TypeError: Cannot create property 'isRootInsert' on string ... using latest Vuetify 2.3.x -- unable to reproduce in codepen. Anyone had this happen? Was working fine before.. I nuked node-modules and even rebuilt using classic vue-cli with vuetify?

Error message:

enter image description here

Here is the SFC code using a setTimeout to sim a remote call for data.

export default class Example extends Vue {

        headers = [
          {
            text: 'Dessert (100g serving)',
            align: 'start',
            sortable: false,
            value: 'name',
          },
          { text: 'Calories', value: 'calories' },
          { text: 'Fat (g)', value: 'fat' },
          { text: 'Carbs (g)', value: 'carbs' },
          { text: 'Protein (g)', value: 'protein' },
          { text: 'Iron (%)', value: 'iron' },
        ];

        desserts = [];

        created() {
          this.getDataFromApi().then(data => {
            this.desserts = data;
          })
        }

        getDataFromApi() {
          return new Promise((resolve, reject) => {

          setTimeout(()=> resolve(this.baseData),1000)})
        };

        baseData =  [
          {
            name: 'Frozen Yogurt',
            calories: 159,
            fat: 6.0,
            carbs: 24,
            protein: 4.0,
            iron: '1%',
          },
          {
            name: 'Ice cream sandwich',
            calories: 237,
            fat: 9.0,
            carbs: 37,
            protein: 4.3,
            iron: '1%',
          },
          {
            name: 'Eclair',
            calories: 262,
            fat: 16.0,
            carbs: 23,
            protein: 6.0,
            iron: '7%',
          },
          {
            name: 'Cupcake',
            calories: 305,
            fat: 3.7,
            carbs: 67,
            protein: 4.3,
            iron: '8%',
          },
          {
            name: 'Gingerbread',
            calories: 356,
            fat: 16.0,
            carbs: 49,
            protein: 3.9,
            iron: '16%',
          },
          {
            name: 'Jelly bean',
            calories: 375,
            fat: 0.0,
            carbs: 94,
            protein: 0.0,
            iron: '0%',
          },
          {
            name: 'Lollipop',
            calories: 392,
            fat: 0.2,
            carbs: 98,
            protein: 0,
            iron: '2%',
          },
          {
            name: 'Honeycomb',
            calories: 408,
            fat: 3.2,
            carbs: 87,
            protein: 6.5,
            iron: '45%',
          },
          {
            name: 'Donut',
            calories: 452,
            fat: 25.0,
            carbs: 51,
            protein: 4.9,
            iron: '22%',
          },
          {
            name: 'KitKat',
            calories: 518,
            fat: 26.0,
            carbs: 65,
            protein: 7,
            iron: '6%',
          },
        ]


like image 766
O. Mills Avatar asked Jun 29 '20 18:06

O. Mills


1 Answers

Make sure in your Vue files to import components.

import { Vue, Component } from 'vue-property-decorator'

After you import your components from vue-property-decorator in all your Vue files.

Make sure you register your components in all your Vue files as well like the snippet below

@Component({
   components: {
   },
   ...
})
like image 115
caeycae Avatar answered Sep 18 '22 23:09

caeycae