javascript - 为什么“这个”会丢失?
问题描述
我会在访问 onFormSubmit 内部的状态时出错,因为当 onFormSubmit 被称为“this”时丢失了。我无法找出渲染函数中发生了什么,导致它失去了对我们组件类的“this”引用。
- 我知道我可以通过使用箭头函数来解决这个问题,因为他们从周围环境或词汇中获取“this”。
- 也可以通过使用 bind() 来解决。
class SearchBar extends React.Component{
state = {term: 'Hi There'};
onFormSubmit(e){
console.log(this.state.term)
}
render(){
return (
<div className="ui segment">
<form onSubmit={this.onFormSubmit} className="ui form">
<label>Image Search</label>
<input type="text" value={this.state.term} onChange={(e) => {
this.setState({term: e.target.value})
}}/>
</form>
</div>
)
}
}
export default SearchBar;
解决方案
推荐阅读
- javascript - php设置间隔php函数
- javascript - 警报发生在隐藏在 jquery 中的可见性之前
- python - 模拟骰子游戏的 Python 程序,两个玩家都由计算机控制
- github - 为 GitHub 拉取请求重置分支
- phpstorm - JSCS 在 PhpStorm 和 WebStorm 上找不到 jscs 文件
- ios - iOS Swift4 如何协调 T.Type 和 type(of:) 以将动态类类型作为函数参数传递?
- python - 创建python包时如何从子目录中读取文件
- javascript - React 中的 Axios 获取方法响应无法在我的博客应用程序中显示从 firebase 获取数据作为数组
- java - 我怎么知道客户端是想发送数据还是从服务器接收数据
- node.js - ReactJS 表单,如何获取图像 url 以便插入 mongodb 数据库?