Reactjs 在按下onKeyDown键的同时删除输入中的内容
当我尝试在按下某个特定键后立即删除输入中的内容时,在这种情况下,该键是带有onKeyDown的字母“t”,输入将被清除,但按下的键将保留在输入中 例如: 当我在输入中键入“sort”时,结果将是“t”。“t”将保留在输入值内,但我希望输入值被清除,尽管我在按下字母“t”时将“term”的状态设置为“”Reactjs 在按下onKeyDown键的同时删除输入中的内容,reactjs,react-native,react-redux,Reactjs,React Native,React Redux,当我尝试在按下某个特定键后立即删除输入中的内容时,在这种情况下,该键是带有onKeyDown的字母“t”,输入将被清除,但按下的键将保留在输入中 例如: 当我在输入中键入“sort”时,结果将是“t”。“t”将保留在输入值内,但我希望输入值被清除,尽管我在按下字母“t”时将“term”的状态设置为“” state={term::}; keyListener=(e)=>{ 如果(e.key==“t”){ this.setState({term:}); } }; onInputChange=(事件)
state={term::};
keyListener=(e)=>{
如果(e.key==“t”){
this.setState({term:});
}
};
onInputChange=(事件)=>{
this.setState({term:event.target.value});
};
render(){
返回(
搜索视频
);
}
发生这种情况是因为下一步将调用onInputChange,只需调用e.preventDefault即可防止:
keyListener = (e) => {
if (e.key === "t") {
this.setState({ term: "" });
e.preventDefault();
}
};
发生这种情况是因为下一步将调用onInputChange,只需调用e.preventDefault即可防止:
keyListener = (e) => {
if (e.key === "t") {
this.setState({ term: "" });
e.preventDefault();
}
};
您可以使用附加了ref的非受控输入,删除
onChange
处理程序并保持onKeyDown
。您可以使用ref获得该值
state = { term: ""};
this.input = React.createRef();
keyListener = (e) => {
if (e.key === "t") {
this.setState({ term: "" });
}
};
render() {
return (
<div className="search-bar ui segment">
<form className="ui form">
<div className="field">
<label>Search Video</label>
<input
type="text"
ref={this.input}
onKeyDown={this.keyListener}
/>
</div>
</form>
</div>
);
}
state={term::};
this.input=React.createRef();
keyListener=(e)=>{
如果(e.key==“t”){
this.setState({term:});
}
};
render(){
返回(
搜索视频
);
}
您可以使用附加了ref的非受控输入,删除onChange
处理程序并保持onKeyDown
。您可以使用ref获得该值
state = { term: ""};
this.input = React.createRef();
keyListener = (e) => {
if (e.key === "t") {
this.setState({ term: "" });
}
};
render() {
return (
<div className="search-bar ui segment">
<form className="ui form">
<div className="field">
<label>Search Video</label>
<input
type="text"
ref={this.input}
onKeyDown={this.keyListener}
/>
</div>
</form>
</div>
);
}
state={term::};
this.input=React.createRef();
keyListener=(e)=>{
如果(e.key==“t”){
this.setState({term:});
}
};
render(){
返回(
搜索视频
);
}