javascript - XMLHttpRequest GET 在 React.js 中不起作用

标签 javascript node.js reactjs ecmascript-6 xmlhttprequest

我有一个 Profile 类,如下所示:

 class Profile extends React.Component {
    state = {
        email: '',
        userName: '',
        userID: ''
    };

    getData() {
        var request = new XMLHttpRequest();

        request.onreadystatechange = function() {
            if (this.readyState == 4 && this.status == 200) {
                console.log(this.responseText);
            }
        };
        request.open('GET', 'http://localhost:8080/user/1');
        request.send();
        console.log(request.responseText);
    }

    render() {
        return ( <
            div >
            this.getData(); <
            /div>

        );
    }
}

问题是它没有在控制台中放置任何东西。

虽然 http://localhost:8080/user/1 在浏览器中返回给我这个:

{"userID":1,"passwordHash":"5994471abb01112afcc18159f6cc74b4f511b99806da59b3caf5a9c173cacfc5","email":"admin@admin.com"}

user/1

如何解决?

最佳答案

我可以设法解决您的问题,您需要使用 {this.getData();} 包装函数调用

可以找到一个例子here

class Profile extends React.Component {
   constructor(props)   {
      super(props);
      this.state = {email:'', userName:'', userID:''};
   }

   getData() {
     var request = new XMLHttpRequest();
     console.log("Inside getData method");

     request.onreadystatechange = function() {
        if (this.readyState == 4 && this.status == 200) {
            console.log(this.responseText);
        }
     };
     request.open('GET', 'https://reqres.in/api/products/3', true);
     request.send();
     console.log(request.responseText);
   }

   render() {
    return(
     <div>
      <h2>You sample output</h2>
        {this.getData()}
      </div>
    );
   }
}



ReactDOM.render(<Profile />, document.querySelector("#container"))

关于javascript - XMLHttpRequest GET 在 React.js 中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57519426/

相关文章:

javascript - 使用 JavaScript 填充图像(而非拉伸(stretch))

javascript - 如何使用在 React 初始状态中声明的空数组?

node.js - Node JS 和 EJS POST

ruby-on-rails - Node.js 的 socket.io 的 Ruby 等价物是什么?

javascript - 客户端-服务器通信、websockets 延迟

javascript - 当第三方库触发事件时,我如何告诉 React 组件更改其状态?

css - react-select:覆盖默认样式并删除可清除的 'x' 图标

javascript - JQuery 别名为每个元素 + 处理程序注册一次事件?

javascript - 使用纯 JavaScript 检索待处理的 AJAX 请求数

javascript - 为子项指定复杂的 PropType