react 中 多个input组件 触发的onKeyUp如何判断?

我现在是有多个单独写的自定义组件里面包含了input标签,然后一个页面下调用多个这个自定义组件,共用一个onKeyUp事件,但是我发现e.target返回的是input标签,不好判断是哪个自定义组件下的input触发的事件。
上代码
keyUpHandle(e)
{
console.log(e.target);
}
Ustyle={defaultStyle}
placeholder='输入会议名称'
onKeyUp={this.keyUpHandle}
key='name'/>
Ustyle={defaultStyle}
placeholder='时间格式:yyyy-MM-ddHH:mm:ss'
onKeyUp={this.keyUpHandle}
key='time'/>
placeholder=''
onKeyUp={this.keyUpHandle}
type='colorPicker'
key='mainColor'/>
自定义组件
render(){
return(
{this.props.placeValue}
className='defaultInput'
value={this.state.value}
defaultValue={this.props.defaultValue?this.props.defaultValue:''}
style={this.props.Ustyle?this.props.Ustyle:{}}
placeholder={this.props.placeholder?this.props.placeholder:'请输入内容...'}
onKeyUp={this.props.onKeyUp?this.props.onKeyUp:()=>{}}
onChange={this.onValueChange}
onFocus={this.props.onFocus?this.props.onFocus:()=>{}}
key={this.props.key?this.props.key:''}
ref='uname'/>
)
}
用了一个很蠢的办法,给自定义组件加一个id,传到Input上,然后根据id区分。
希望有更好的办法!
倚天杖
浏览 889回答 2
2回答

繁花如伊

既然子组件是自定义的,那么重新设计子组件api是更好的方式。避免父组件产生大量闭包。增加如下方法onKeyUp=e=>this.props.onKeyUp&&this.props.onKeyUp(e,this.props.key)onKeyUp={this.onKeyUp}或者,把restProps都传给input,那么调用时可以传入dataset来做标记。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript