【发布时间】:2021-02-21 01:07:46
【问题描述】:
在 vuejs3 应用程序中,我使用 axios 方法从 db 中检索数据,例如:
<script>
import appMixin from '@/appMixin'
import app from './../../App.vue' // eslint-disable-line
import axios from 'axios'
const emitter = mitt()
export default {
name: 'adminCategoriesList',
mixins: [appMixin],
data: function () {
return {
categoriesPerPage: 20,
currentPage: 1,
categoriesTotalCount: 0,
categories: []
}
},
components: {
},
setup () {
const adminCategoriesListInit = async () => {
this.loadCategories() // ERROR HERE
}
function onSubmit (credentials) {
alert(JSON.stringify(credentials, null, 2))
console.log('this::')
console.log(this)
console.log('app::')
}
onMounted(adminCategoriesListInit)
return {
// schema,
onSubmit
}
}, // setup
methods: {
loadCategories() {
...
}
我在浏览器的控制台中遇到错误:
Cannot read property 'loadCategories' of undefined
如果要删除“this”。在 loadCategories 调用中 我得到了错误:
'loadCategories' is not defined
我需要将 loadCategories 作为方法,因为我需要从不同的地方调用它。
哪种方式正确?
谢谢!
【问题讨论】:
-
你想从
setup返回方法loadCategories。另外,我建议使用完整的 Composition API 或 Options API——但不要同时使用。 -
我更喜欢Composition API,但以哪种方式?我现在的结构出了什么问题?
-
好吧,尝试将方法放在
setup回调中并从那里返回。这允许您访问它以及在模板上公开它(一旦返回)。
标签: vue.js vuejs3 vue-composition-api