provide/inject APIでエラー発生。。。
下記のようなエラーが発生した
Uncaught TypeError: (intermediate value)() is undefined
コード:
<template lang="pug"> div table tr th ID td input(type="text" v-model="model.id") tr th Password td input(type="password" v-model="model.password") tr td(colspan="2") button(@click="doLogin") Login </template> <script lang="ts"> import {defineComponent, reactive} from 'vue'; import {useStore} from '@/store/GenericsStore'; export default defineComponent({ name: 'Login', components: {}, setup() { const model = reactive({ id: '', password: '', }); const doLogin = () => { const {login} = useStore(); login(model.id, model.password); }; return { model, doLogin, }; }, }); </script>
inject API(useStore())をsetup関数のスコープで呼び出していなかったことがまずかったらしい
export default defineComponent({ name: 'Login', components: {}, setup() { const {login} = useStore(); const model = reactive({ id: '', password: '', }); const doLogin = () => { login(model.id, model.password); }; return { model, doLogin, }; }, });