Module '"*.vue"' has no exported member 'emitter'.

来源:5-10 ValidateForm 编码第三部分 - 寻找外援 mitt

德育处主任

2020-10-20

图片描述

是说ValidateForm.vue没有导出该模块吗?

ValidateForm.vue

<script lang="ts">
import { defineComponent, onUnmounted } from 'vue'
import mitt from 'mitt'
export const emitter = mitt()

export default defineComponent({
  emits: ['form-submit'],
  setup (props, context) {
    const submitForm = () => {
      context.emit('form-submit', true)
    }

    const callback = (text?: string) => {
      console.log(text)
    }

    emitter.on('form-item-created', callback)

    onUnmounted(() => {
      emitter.off('form-item-created', callback)
    })

    return {
      submitForm
    }
  }
})
</script>

ValidateInput.vue

<script lang="ts">
import { defineComponent, reactive, PropType, onMounted } from 'vue'
import { emitter } from './ValidateForm.vue'
const emailReg = /^[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-zA-Z0-9-]+(?:\.[a-zA-Z0-9-]+)*$/
interface RuleProp {
  type: 'required' | 'email';
  message: string;
}
export type RulesProp = RuleProp[]
</script>

上面贴了js的局部代码。

在ValidateInput.vue引入emitter的时候就报错了。

mitt的版本是 2.1.0

写回答

1回答

张轩

2020-10-20

同学你好 从代码看起来导出和引入是没问题的  而且你在另外一个问题也说过 之前是没问题 之后突然有问题 这只能是 ts 解析有问题 你方便把源代码给我一份 上传到 github 或者 gitee 都可以 我帮你看看 

1
6
慕田峪9151845
我也遇到这种问题,还遇到别的一样性质的,有时候我把代码回退,重新一模一样粘贴上去就可以了,很莫名其妙呀,,这是因为啥呢
2021-06-02
共6条回复

Vue3 + TS 仿知乎专栏企业级项目

带你完成前后端分离复杂项目,率先掌握 vue3 造轮子技能

3142 学习 · 2313 问题

查看课程