【uniapp+vue3+typescript】基于input事件方法Type () => void is not assignable to type EventHandle

报错代码:<input placeholder="输入内容" @input="inputValue"/>

正确代码:<input placeholder="输入内容" @input="inputValue($event)"/>

错误原因:

1、@input是一个EventHandle类型【不是一个函数类型,而是一个调用函数后返回的值类型】基于typescript类型管理严格,为此这里必须调用获取返回结果

2、又比如button事件,又不一样,直接传入一个函数也是可以的【input类型比较特殊】

正确代码实例: 

<template>
  <view class="content">
    <image class="logo" src="/static/logo.png"/>
    <view class="text-area">
      <text class="title">{{ title }}</text>
      <input placeholder="输入内容" @input="inputValue($event)"/>
    </view>
  </view>
</template>

<script lang="ts">
import {ref, defineComponent} from 'vue'



export default defineComponent({
  setup() {
    const title = ref('Hello')
    const inputValue = (e: InputEvent) =>{
      console.log("inputValue", e)
    }

    return {
      title,
      inputValue,
    }
  }
})
const title = ref('Hello')


function inputValue(e: InputEvent) {
  console.log("inputValue", e)
}

</script>

<style>
.content {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
}

.logo {
  height: 200rpx;
  width: 200rpx;
  margin-top: 200rpx;
  margin-left: auto;
  margin-right: auto;
  margin-bottom: 50rpx;
}

.text-area {
  display: flex;
  justify-content: center;
}

.title {
  font-size: 36rpx;
  color: #8f8f94;
}
</style>

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值