我现在是有多个单独写的自定义组件里面包含了input标签,然后一个页面下调用多个这个自定义组件,共用一个onKeyUp事件,但是我发现e.target返回的是input标签,不好判断是哪个自定义组件下的input触发的事件。上代码keyUpHandle(e){console.log(e.target);}自定义组件render(){return({this.props.placeValue}{}}onChange={this.onValueChange}onFocus={this.props.onFocus?this.props.onFocus:()=>{}}key={this.props.key?this.props.key:''}ref='uname'/>)}用了一个很蠢的办法,给自定义组件加一个id,传到Input上,然后根据id区分。希望有更好的办法!
2 回答
繁花如伊
TA贡献2012条经验 获得超12个赞
既然子组件是自定义的,那么重新设计子组件api是更好的方式。避免父组件产生大量闭包。增加如下方法onKeyUp=e=>this.props.onKeyUp&&this.props.onKeyUp(e,this.props.key)onKeyUp={this.onKeyUp}或者,把restProps都传给input,那么调用时可以传入dataset来做标记。
添加回答
举报
0/150
提交
取消