Skip to content

Commit 908c1b7

Browse files
committed
feat: 修改 AtTextarea onChange 的方法签名与 AtInput 一致 close #967
1 parent 31f3af9 commit 908c1b7

File tree

4 files changed

+26
-25
lines changed

4 files changed

+26
-25
lines changed

docs/markdown/textarea.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -44,9 +44,9 @@ export default class Index extends Taro.Component {
4444
value: ''
4545
}
4646
}
47-
handleChange (event) {
47+
handleChange (value) {
4848
this.setState({
49-
value: event.target.value
49+
value
5050
})
5151
}
5252
render () {

src/components/textarea/index.tsx

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,12 @@ import Taro from '@tarojs/taro'
77
import AtComponent from '../../common/component'
88
import { initTestEnv } from '../../common/utils'
99

10+
type ExtendEvent = {
11+
target: {
12+
value: string
13+
}
14+
}
15+
1016
function getMaxLength(
1117
maxLength: number,
1218
textOverflowForbidden: boolean
@@ -24,8 +30,8 @@ export default class AtTextarea extends AtComponent<AtTextareaProps> {
2430
public static defaultProps: AtTextareaProps
2531
public static propTypes: InferProps<AtTextareaProps>
2632

27-
private handleInput = (event: CommonEvent): void => {
28-
this.props.onChange(event)
33+
private handleInput = (event: CommonEvent & ExtendEvent): void => {
34+
this.props.onChange(event.target.value, event)
2935
}
3036

3137
private handleFocus = (event: CommonEvent): void => {

src/pages/form/textarea/index.tsx

Lines changed: 10 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -1,26 +1,15 @@
1-
import Taro from '@tarojs/taro'
2-
import { View } from '@tarojs/components'
3-
import { CommonEvent } from '@tarojs/components/types/common'
41
import { AtTextarea } from 'taro-ui'
2+
import { View } from '@tarojs/components'
3+
import Taro from '@tarojs/taro'
54
import DocsHeader from '../../components/doc-header'
65
import './index.scss'
76

8-
type TargetEvent = {
9-
target: {
10-
value: any
11-
}
12-
} & CommonEvent
13-
147
interface IndexState {
158
[key: string]: string
169
}
1710

1811
export default class Index extends Taro.Component<{}, IndexState> {
19-
public config: Taro.PageConfig = {
20-
navigationBarTitleText: 'Taro UI'
21-
}
22-
23-
public constructor () {
12+
public constructor() {
2413
super(...arguments)
2514
this.state = {
2615
value1: '',
@@ -30,13 +19,17 @@ export default class Index extends Taro.Component<{}, IndexState> {
3019
}
3120
}
3221

33-
private handleChange (stateName: string, e: TargetEvent): void {
22+
public config: Taro.PageConfig = {
23+
navigationBarTitleText: 'Taro UI'
24+
}
25+
26+
private handleChange(stateName: string, value: string): void {
3427
this.setState({
35-
[stateName]: e.target.value
28+
[stateName]: value
3629
})
3730
}
3831

39-
public render (): JSX.Element {
32+
public render(): JSX.Element {
4033
return (
4134
<View className='page'>
4235
{/* S Header */}

types/textarea.d.ts

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
1-
import { MouseEvent, ComponentClass } from 'react'
2-
import { CommonEventFunction } from '@tarojs/components/types/common'
3-
1+
import { ComponentClass } from 'react'
2+
import {
3+
CommonEvent,
4+
CommonEventFunction
5+
} from '@tarojs/components/types/common'
46
import AtComponent from './base'
57

68
export interface AtTextareaProps extends AtComponent {
@@ -87,7 +89,7 @@ export interface AtTextareaProps extends AtComponent {
8789
* 开发者需要通过 onChange 事件的 event.target.value 来更新 value 值变化,
8890
* onChange 函数必填
8991
*/
90-
onChange: CommonEventFunction
92+
onChange: (value: string, event?: CommonEvent) => void
9193
/**
9294
* 输入框获得焦点时触发,height 为键盘高度,在基础库 1.9.90 起支持
9395
*/

0 commit comments

Comments
 (0)