Ts を使用する Vue3 プロジェクト: タイプ「(XXX?: boolean) => void」をタイプ「(payload: MouseEvent) => void」に割り当てることはできません

イベント バインド関数が値を渡さない場合、関数の最初のパラメーターはデフォルトで $event になり、タイプは「MouseEvent」になります。

ここに画像の説明を挿入します

解決策: デフォルトのパラメータを渡すだけです。サンプルコードは次のとおりです。

<template>
  <!-- <div class="title" @click="showDialog">{
    
    {
    
     navTitle }}</div> -->
  <div class="title" @click="showDialog(true)">{
    
    {
    
     navTitle }}</div>
</template>

<script lang="ts">
import {
    
     defineComponent, inject, reactive, toRefs, watch } from 'vue'
export default defineComponent({
    
    
  name: 'InfoModule',
  setup () {
    
    
    const data = reactive({
    
    
      showTitleDialog: false, // 弹窗是否显示
      navTitle: ''
    })
    // 点击标题显示弹窗
    const showDialog = (val = true) => {
    
    
      data.showTitleDialog = val
    }

    return {
    
    
      showDialog,
      ...toRefs(data)
    }
  }
})
</script>

おすすめ

転載: blog.csdn.net/Y1914960928/article/details/132882221