首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何修复“Response-dom.Development.js:287未定义的TypeError:无法读取未定义的属性'setState‘”

如何修复“Response-dom.Development.js:287未定义的TypeError:无法读取未定义的属性'setState‘”
EN

Stack Overflow用户
提问于 2019-05-18 14:18:09
回答 2查看 3.8K关注 0票数 0

我正在尝试将我的反应性表单上传到状态,这样我就可以用这些凭据获取一个API。

我尝试过创建一个如下所示的函数:

代码语言:javascript
复制
handleEmail(event) {
    this.setState({email: event.target.value});
  }
  handlePassword(event) {
    this.setState({password: event.target.value});
  }
  render() {
    return (
      <div>
        <NavBar />
        <form className="pt-6 container">
          <div className="form-group">
            <label className="mt-6" >Your email</label>
            <input name className="form-control" onChange={this.handleEmail} placeholder="Email" type="email" />
          </div> {/* form-group// */}
          <div className="form-group">
            <a className="float-right" href="#">Forgot?</a>
            <label>Your password</label>
            <input className="form-control" onChange={this.handlePassword} placeholder="******" type="password" />
          </div> {/* form-group// */}
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-05-18 14:25:21

这是一个范围界定的问题。由于这些方法是在事件触发器之后调用的,所以this指向调用它的作用域,而不是指向定义它的类实例。

您需要使用箭头函数来修复这个问题。

代码语言:javascript
复制
handleEmail = (event) => {
    this.setState({email: event.target.value});
  }
  handlePassword = (event) => {
    this.setState({password: event.target.value});
  }
票数 1
EN

Stack Overflow用户

发布于 2019-05-18 16:46:38

您需要绑定您的函数,添加如下构造函数:

代码语言:javascript
复制
constructor(props) {
    super(props);
    this.state = {
        email: '',
        password:''
    };

    this.handleEmail= this.handleEmail.bind(this);
    this.handlePassword= this.handlePassword.bind(this);
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56199798

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档