Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Props should at least define their types

<template>
  <div 
    v-editable="blok" 
    class="util__flex">
    <component 
      v-for="blok in blok.columns" 
      :key="blok._uid" 
      :blok="blok" 
      :is="blok.component"/>
  </div>
</template>

<script>
export default {
  props: ['blok']
}
</script>

Im doing tutorial at Storyblok, and I do get such an error.

https://www.storyblok.com/tp/nuxt-js-multilanguage-website-tutorial#creating-the-homepage-components

Props should at least define their types vue/require-prop-types

like image 889
Kamil Septio Trojnar Avatar asked Dec 06 '18 20:12

Kamil Septio Trojnar


2 Answers

You have probably enabled ESlint on project initialization (see create-nuxt-app options), that activated this mandatory rule.

So you have to declare a following type:

  • String
  • Number
  • Boolean
  • Array
  • Object
  • Date
  • Function
  • Symbol

See Vue.js doc:

https://vuejs.org/v2/guide/components-props.html#Prop-Types https://vuejs.org/v2/guide/components-props.html#Type-Checks

For your case:

<script>
export default {
  props: {
    blok: Object
  }
}
</script>
like image 187
Nicolas Pennec Avatar answered Sep 20 '22 07:09

Nicolas Pennec


For current nuxt version(v2.8.1), we should set props as follows:

<script>
export default {
  props: {
    blok: {
      type: Object,
      default: null
    }
  }
}
</script>
like image 33
egor518 Avatar answered Sep 18 '22 07:09

egor518