gpt4 book ai didi

javascript - onClick 事件返回代理对象而不是 ReactJX 中的事件处理程序对象

转载 作者:行者123 更新时间:2023-11-30 08:25:42 26 4
gpt4 key购买 nike

我尝试在输入的更改事件上比较输入的键代码,但是当我尝试它时,我只看到代理对象而不是事件处理程序对象。我找不到任何解决方案。在另一个组件中我实现了它,但在这个组件中我不能。

我的处理函数是:

  handleChange(event){
this.setState({
searchValue : this.searchInput.value
});
if(this.searchInput.value.length>2&&!this.state.recommendation&&this.focused){
this.setState({
recommendation:true
});
} else if(this.searchInput.value.length<3&&this.state.recommendation&&this.focused) {
this.setState({
recommendation:false
});
return;
}
console.log(event) //event is returned as Proxy object
if(event.keyCode === 13){
this.context.router.history.push(`/yardim/arama/${this.searchInput.value}`);
return;
}

if(this.searchInput.value.length>2){
this.bouncer.handle();
}
}

渲染函数是:

render(){
return(
<div id="faq-search-box">
{this.state.recommendation}
<i className="icon hb-icon-search_icon"></i>
<input id="faq-search-input" type="text" placeholder="Yardım konusu ara..." value={this.state.searchValue} ref={input=>{this.searchInput=input;}} onChange={this.handleChange.bind(this)} onFocus={this.onFocus} onBlur={this.onBlur} />
<div className="clearfix"></div>
{ this.state.recommendation &&
<div id="faq-recommendation-box">
{this.props.FAQRecomendations&&
<ul>
{this.props.FAQRecomendations.map((faq)=>
<li key={faq.id}><a onMouseDown={(e)=>{this.onMouseDown(`/yardim/${faq.slug}#${faq.id}`,e)}} title={faq.name}>{faq.name}</a></li>
)}
</ul>
}
</div>
}

</div>
)
}

问题是什么?如何访问事件处理程序?

最佳答案

我找到的解决方案是这样的。问题是由于 SyntheticEvent 而发生的.

Proxy 对象上有一个名为 nativeEvent 的对象。

感谢它,我获得了 keyCode。

例如:

... 
if(event.nativeEvent.keyCode === 13){
this.context.router.history.push(`/yardim/arama/${this.searchInput.value}`);
return;
}
...

关于javascript - onClick 事件返回代理对象而不是 ReactJX 中的事件处理程序对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46052729/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com