如何使用 onBlur 显示结果?
How do I display results using onBlur?
所以我正在尝试制作一个搜索表单,当它失去焦点时,它会使用另一个函数来搜索某些内容并显示结果。
所以当我输入一个词时,我点击其他地方后,它会显示结果。
在我的 jsx 文件中,我有渲染函数和模糊函数。
render(){
return <form>
<span className = "name"> Search Term: </span>
<input id = "search-term" value = {this.state.value} onBlur = {this.onBlur} </input>
</form>
}
所以我可以很好地访问我的 onBlur 函数,因为我可以在我的 onBlur 函数中添加一个 console.log("hello world") 并且它起作用了。
但是只有当我失去焦点时我如何渲染更多行 HTML ,例如,这只会在我失去焦点时显示:
<div>
<div class = "result">
[data or whatever the result is]
</div>
这是放在 onBlur 函数还是我的渲染函数中?
如果是渲染函数,我需要某种条件语句吗?
理想情况下,您应该简单地使用结果设置组件的状态,然后让 React 将更新后的结果渲染到 div 中。这是一个例子:
class ExampleComponent extends React.Component {
onBlur = async () => {
const results = await axios.get('myhttpendpoint');
this.setState({
results
});
}
render(){
return (
<div>
<form>
<span className = "name"> Search Term: </span>
<input id="search-term" value={this.state.value} onBlur={this.onBlur} />
</form>
<div id="results">
{this.state.results}
</div>
</div>);
}
}
所以我正在尝试制作一个搜索表单,当它失去焦点时,它会使用另一个函数来搜索某些内容并显示结果。
所以当我输入一个词时,我点击其他地方后,它会显示结果。
在我的 jsx 文件中,我有渲染函数和模糊函数。
render(){
return <form>
<span className = "name"> Search Term: </span>
<input id = "search-term" value = {this.state.value} onBlur = {this.onBlur} </input>
</form>
}
所以我可以很好地访问我的 onBlur 函数,因为我可以在我的 onBlur 函数中添加一个 console.log("hello world") 并且它起作用了。 但是只有当我失去焦点时我如何渲染更多行 HTML ,例如,这只会在我失去焦点时显示:
<div>
<div class = "result">
[data or whatever the result is]
</div>
这是放在 onBlur 函数还是我的渲染函数中?
如果是渲染函数,我需要某种条件语句吗?
理想情况下,您应该简单地使用结果设置组件的状态,然后让 React 将更新后的结果渲染到 div 中。这是一个例子:
class ExampleComponent extends React.Component {
onBlur = async () => {
const results = await axios.get('myhttpendpoint');
this.setState({
results
});
}
render(){
return (
<div>
<form>
<span className = "name"> Search Term: </span>
<input id="search-term" value={this.state.value} onBlur={this.onBlur} />
</form>
<div id="results">
{this.state.results}
</div>
</div>);
}
}