diff --git a/src/packages/textarea/__test__/__snapshots__/textarea.spec.tsx.snap b/src/packages/textarea/__test__/__snapshots__/textarea.spec.tsx.snap
index 76f243f012..cd9ee8bcbe 100644
--- a/src/packages/textarea/__test__/__snapshots__/textarea.spec.tsx.snap
+++ b/src/packages/textarea/__test__/__snapshots__/textarea.spec.tsx.snap
@@ -6,15 +6,15 @@ exports[`textarea props test 1`] = `
class="nut-textarea nut-textarea-container nut-textarea-default"
>
4
/
diff --git a/src/packages/textarea/textarea.taro.tsx b/src/packages/textarea/textarea.taro.tsx
index 4f69f69e93..58baf70a1b 100644
--- a/src/packages/textarea/textarea.taro.tsx
+++ b/src/packages/textarea/textarea.taro.tsx
@@ -1,7 +1,13 @@
import React, { FunctionComponent, useRef } from 'react'
import classNames from 'classnames'
import Taro from '@tarojs/taro'
-import { Textarea, TextareaProps, View, Text } from '@tarojs/components'
+import {
+ BaseEventOrig,
+ Text,
+ Textarea,
+ TextareaProps,
+ View,
+} from '@tarojs/components'
import { useConfig, useRtl } from '@/packages/configprovider/index.taro'
import { BasicComponent, ComponentDefaults } from '@/utils/typings'
import { usePropsValue } from '@/utils/use-props-value'
@@ -21,8 +27,8 @@ export interface TextAreaProps
plain: boolean
status: 'error' | 'default'
onChange: (value: string) => void
- onBlur: (event: Event) => void
- onFocus: (event: Event) => void
+ onBlur: (event: BaseEventOrig) => void
+ onFocus: (event: BaseEventOrig) => void
}
const defaultProps = {
@@ -77,7 +83,7 @@ export const TextArea: FunctionComponent
> = (props) => {
onChange,
})
- const handleChange = (event: any) => {
+ const handleChange = (event: BaseEventOrig) => {
const text = event?.detail?.value
if (text) {
const value = compositionRef.current ? text : format(text)
@@ -87,16 +93,16 @@ export const TextArea: FunctionComponent> = (props) => {
}
}
- const handleFocus = (event: Event) => {
- if (disabled) return
- if (readOnly) return
- onFocus && onFocus(event)
+ const isDisabled = () => disabled || readOnly
+
+ const handleFocus = (event: BaseEventOrig) => {
+ if (isDisabled()) return
+ onFocus?.(event)
}
- const handleBlur = (event: Event) => {
- if (disabled) return
- if (readOnly) return
- onBlur && onBlur(event)
+ const handleBlur = (event: BaseEventOrig) => {
+ if (isDisabled()) return
+ onBlur?.(event)
}
return (
@@ -104,15 +110,19 @@ export const TextArea: FunctionComponent> = (props) => {