无法使用react-starter-kit重新渲染组件

时间:2018-01-12 10:19:59

标签: javascript reactjs react-starter-kit

使用kriasoft/react-starter-kit创建Web应用程序。 它从我的api服务器获取对象,并在页面上显示它们。 应用程序在获取数据时应显示加载图标。

我的代码在获取对象后不会重新渲染组件。 它继续显示“正在加载...”,即使我想看到“数据加载!”。

import React from 'react';
import fetch from 'isomorphic-fetch'

class Search extends React.Component {
  constructor(...args) {
    super(...args);

    this.getObjectsFromApiAsync = this.getObjectsFromApiAsync.bind(this);

    this.state = {
      isLoading: true,
    };
  }
  
  async getObjectsFromApiAsync() {
    try {
      const response = await fetch('http://localhost:3030/api');
      const content = await response.json();
      // console.log(content)
      this.setState({isLoading: false});
    } catch(e) {
      console.error(e);
    }
  }

  componentWillMount() {
    this.getObjectsFromApiAsync();
  };
  
  render() {
    if (this.state.isLoading) {
      return (
        <p>Loading...</p>
      );
    }
    
    return (
      <p>Data loaded!!</p>
    );
  }
}

1 个答案:

答案 0 :(得分:1)

通过将res.setHeader('Access-Control-Allow-Origin', 'http://localhost:3000');添加到我的api服务器来解决问题。 问题不在React中。

以下是解决方案资源: https://stackoverflow.com/a/18311469/6209648