无法使用ReactJS打印字符串

无法使用ReactJS打印字符串,reactjs,Reactjs,我试图从网页上获取数据,并将内容打印到屏幕上。以下是HTTP get请求的代码: https.get('https://jsonplaceholder.typicode.com/users', (resp) => { let data = ''; // A chunk of data has been received. resp.on('data', (chunk) => { data += chunk; });

我试图从网页上获取数据,并将内容打印到屏幕上。以下是HTTP get请求的代码:

https.get('https://jsonplaceholder.typicode.com/users', (resp) => {
      let data = '';

      // A chunk of data has been received.
      resp.on('data', (chunk) => {
          data += chunk;
      });

      // The whole response has been received. Print out the result.
      resp.on('end', () => {
          for (let i = 0; i < JSON.parse(data).length; i++)
              cities += JSON.parse(data)[i].address.city + '\n';
          console.log(cities);
      });
https.get('https://jsonplaceholder.typicode.com/users“,(resp)=>{
让数据=“”;
//已收到一块数据。
在('数据',(块)=>{
数据+=块;
});
//已收到全部响应。请打印结果。
分别在('结束',()=>{
for(设i=0;i
在下面的代码中,我无法将其打印到屏幕上。我在谷歌上搜索,但没有找到解决方案

let printing = "All users data:";
  return <div className="App">
      <header className="App-header">
          <p>
              {printing}
          </p>
          <p>
              {cities}
          </p>
      </header>
  </div>;
let printing=“所有用户数据:”;
返回

{打印}

{城市}

;
这里我可以打印打印字符串,但我不能打印城市字符串。这是什么原因? (完整代码可在
(39行))

您正在http请求完成回调之外更新状态,因此状态将在http请求完成之前更新,即
此.setState
在http请求启动后立即调用,而不是在请求完成后调用。您需要移动
此.setState({cities:getCities})
进入
resp.on('end',…)
回调,如下所示:

resp.on('end', () => {
    for (let i = 0; i < JSON.parse(data).length; i++)
        getCities += JSON.parse(data)[i].address.city + '\n';
    console.log(getCities);
    this.setState({cities : getCities}); // <-- update state here once http request has completed
});
resp.on('end',()=>{
for(设i=0;ithis.setState({cities:getCities});//您正在http请求完成回调之外更新状态,因此状态将在http请求完成之前更新,即
this.setState在http请求启动后立即调用,而不是在请求完成后调用。您需要移动
this.setState({cities:getCities})
进入
resp.on('end',…)
回调,如下所示:

resp.on('end', () => {
    for (let i = 0; i < JSON.parse(data).length; i++)
        getCities += JSON.parse(data)[i].address.city + '\n';
    console.log(getCities);
    this.setState({cities : getCities}); // <-- update state here once http request has completed
});
resp.on('end',()=>{
for(设i=0;ithis.setState({cities:getCities});//如果没有状态或道具更改,React不会重新提交组件。我认为您应该具备从别处获取数据并通过道具将其传递给组件的逻辑。如果没有状态或道具更改,React不会重新提交组件。我认为您应该具备从别处获取数据并将其传递给组件的逻辑通过道具的合一。