Currently, I am doing a filter and reset button in the website . However, whenever i press the reset button , it keep shows that [Vue warn]: Invalid prop: type check failed for prop "page". Expected Number with value 0, got String with value "".
I couldn't find the root problem as I did not define any prop "page". Can anyone help me with this
index.vue
<v-data-table
:headers="tableHeaders"
:items="tableData.results"
:options.sync="tableOptions"
:sort-desc.sync="tableSortDesc"
:sort-by.sync="tableSortBy"
:server-items-length="tableData.count"
:items-per-page="5"
v-model="selectedTableData"
show-select
:loading="isTableLoading"
:page="itemPageNumber"
>
computed: {
itemPageNumber() {
if (this.filters.hasOwnProperty('page')) {
return this.filters.page.value
}
return 1
}
},
Console error message
found in
---> <VDataTable>
<VCard>
<BaseData> at components/BaseData.vue
<BaseListing> at components/BaseListing.vue
<MedicalAdminClinicIndex> at pages/medical/activity/index.vue
<Nuxt>
<VMain>
<VApp>
<DefaultLayout> at layouts/default.vue
<Root> vue.runtime.esm.js:619
VueJS 23
created SnackBar.vue:29
commit vuex.common.js:474
commit vuex.common.js:472
boundCommit vuex.common.js:411
showSnackBar notifier.js:12
_callee4$ index.vue:564
Babel 10
resetFilter mixin-medical-global-index.js:41
VueJS 4
reset BaseFilter.vue:16
VueJS 4
click vuetify.js:2609
VueJS 33
CodePudding user response:
You need to make sure that the props - :page
you are passing in the VDataTable
has the matching type (in your case it should be Number
.
The root problem is you have defined the type as Number
for the prop value but somehow a String
is being passed, eventually throwing the error.
computed: {
itemPageNumber() {
if (this.filters.hasOwnProperty('page') && this.filters.page !== "") {
return Number(this.filters.page.value)
//use Number function only if page.value has String type
}
return 1
}
},