首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >TypeError:无法读取未定义React.js的属性“”username“”

TypeError:无法读取未定义React.js的属性“”username“”
EN

Stack Overflow用户
提问于 2021-05-13 18:02:05
回答 1查看 28关注 0票数 0

我有一个React.js应用程序。

代码语言:javascript
运行
复制
      constructor(props){
        super(props);
        this.state = {
            password:'',
            username:''
        }
        this.handleChangePassword = this.handleChangePassword.bind(this)
        this.handleChangeUsername = this.handleChangeUsername.bind(this)
        this.getData = this.getData.bind(this)
    }
    handleChangePassword(event) {
        this.setState({password: event.target.value});
    }
    handleChangeUsername(event) {
        this.setState({username: event.target.value});
    }
   getData() {
        $.ajax({
            type: 'GET',
            url: `/home/data`,
            dataType: 'json',
            //whatever you need
            beforeSend: function (xhr) {
                xhr.setRequestHeader('Authorization', make_base_auth(this.state.username, this.state.password));
            },
            success: function(xhr){
                console.log(xhr.status)
            }
        });
    }

如果我点击一个按钮,应该会执行函数getData()。但是如果这个函数被执行,我会在浏览器中得到这个错误的TypeError: Cannot read property 'username' of undefined

下面是我调用函数的方式:

<input type="input" value={this.state.username} onChange={this.handleChangeUsername} className="form-control" placeholder="Email" />

EN

Stack Overflow用户

回答已采纳

发布于 2021-05-13 18:04:54

this正在引用beforeSend函数,请尝试使用箭头函数将其删除

代码语言:javascript
运行
复制
beforeSend: (xhr) => { // change to arrow
       xhr.setRequestHeader('Authorization', make_base_auth(this.state.username, this.state.password));
},
票数 0
EN
查看全部 1 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67517319

复制
相关文章

相似问题

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