В приложении vuejs3 я извлекаю данные из db с помощью метода axios in, например:
<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
Если убрать «это». при вызове loadCategories я получил ошибку:
'loadCategories' is not defined
Мне нужно сделать loadCategories как метод, так как мне нужно вызывать его из разных мест.
Какой путь правильный?
Спасибо!
loadCategories
изsetup
. Кроме того, я бы предложил использовать либо полный Composition API, либо API опций, но не оба сразу. - person Yom T.   schedule 09.11.2020setup
и вернуть его оттуда. Это позволяет вам получить к нему доступ, а также выставить его в шаблоне (после возврата). - person Yom T.   schedule 09.11.2020