Почему переменная store равна undefined в данном случае? <br/> <pre><code class="javascript">import FormCreate from "@/components/FormCreate.vue"
import FormUser from "@/components/FormUser.vue"
import { defineComponent } from 'vue'
import {postForm} from "@/stores/form"
export default defineComponent({
setup() {
const stores = postForm()
return {stores}
},
methods: {
onLogin(data) {
console.log(this.stores)
}
}
})</code></pre> <br/> <br/> postForm - это объект из скрипта form и использует pinia.
Undefined возвращаемое значение появляется из-за того, что метод `setup()` возвращает только объект с переменной `stores`, но не возвращает методы. Поэтому переменная `stores` доступна в компоненте, но метод `onLogin` не определен в контексте этого компонента.
Переменная `store` равна `undefined` из-за того, что она не была объявлена внутри метода `setup()`. Вместо этого была объявлена переменная `stores`.
Если вы хотите иметь доступ к `stores` и методам в компоненте, вам нужно изменить ваш компонент следующим образом:
```javascript
import FormCreate from "@/components/FormCreate.vue"
import FormUser from "@/components/FormUser.vue"
import { defineComponent } from 'vue'
import {postForm} from "@/stores/form"
export default defineComponent({
setup() {
const stores = postForm()
const onLogin = (data) => {
console.log(stores)
}
return {stores, onLogin}
}
})
```
Теперь метод `onLogin` будет доступен в контексте вашего компонента и переменная `stores` не будет равна `undefined`.
1. Проблема в том, что возвращает твой postForm. Сам по себе приведённых код рабочий. Нужен код postForm.
2. Хотя приведённый код и рабочий - так писать нельзя: ты используешь либо Options Api, либо Composition Api. Не смешивая. Если есть setup - нет methods, если есть methods - нет setup. Да, оно работает. Но это говно. Как Тесла с дизель-генератором в багажнике.