报错代码:<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>