当前位置: 首页 > 知识库问答 >
问题:

使用查询获取JSON并在我的React组件中使用它

顾俊誉
2023-03-14

我试图通过我的React组件中的Jquery$. getJSON函数访问JSON数据,但我一直收到这个错误:

不变违规:缩小反应错误#31;参观http://facebook.github.io/react/docs/error-decoder.html?invariant=31

对象作为React子对象无效(找到:带有关键字{username,img,alltime,recent,lastUpdate}的对象)。

这是我的代码here.Don不太知道问题在哪里......

class Board extends React.Component {
  constructor(props) {
    super(props);
    this.state = {
      first: '',
      second: ''
    }
  }
  componentDidMount() {
    var self = this;
    $.getJSON("https://fcctop100.herokuapp.com/api/fccusers/top/recent",function(data){
      self.setState({first:data});
      console.log(this.state.first);
    });
  }
  render() {
    return (<div>
      <pre>{this.state.first}</pre>
      <pre>{this.state.second}</pre>
      </div>)
  }

}

ReactDOM.render(<Board />, document.getElementById('mine'));

共有1个答案

商曦
2023-03-14

无法渲染对象数组。React知道如何渲染组件。一种解决方案是映射来自XHR响应的数组,并呈现每个对象。

你的渲染函数应该是这样的:

class Board extends React.Component {
  constructor(props) {
    super(props);
    this.state = {
      first: [],
      second: []
    }
  }
  componentDidMount() {
    var self = this;
    $.getJSON("https://fcctop100.herokuapp.com/api/fccusers/top/recent",function(data){
      console.log(data)
      self.setState({first:data});
    });
  }
  render() {
    return (
      <div>
            {this.state.first.map((el, i) => <pre key={i}>{JSON.stringify(el, null, ' ')}</pre>)}
      </div>
    )
  }
}

ReactDOM.render(<Board />, document.getElementById('container'));

还要注意,我已经将初始状态更改为空数组(以便能够映射到它)

 类似资料:
  • 问题内容: 我正在发出这样的请求: 如何传递查询字符串参数?我是否只是将它们添加到URL?我在docs中找不到示例。 问题答案: 您的第一个想法是对的:只需将其添加到URL。 请记住,您可以使用模板字符串(反引号)简化将变量放入查询的过程。

  • 问题内容: 我对sql中的别名有疑问和疑问。如果我想在同一查询中使用别名,可以使用它。例如:考虑表名xyz与列a和b 这有可能吗? 问题答案: 您是在谈论给查询中的表达式赋予标识符,然后在查询的其他部分重用该标识符吗? 在Microsoft SQL Server中这是不可能的,而我几乎所有的SQL经验都仅限于此。但是您可以执行以下操作。 显然,该示例并不是特别有用,但是如果您在多个地方使用该表达式

  • 我使用Unirest从一个endpoint获取所有id,我的数组如下: 现在我想得到所有,其中是0,我使用的是一个逻辑,它将得到,但是,我需要使用Java使用这个条件得到。 有人能帮我解决这个问题吗?

  • 问题内容: 我有一个API,它为我提供了Webpack处理的react组件,如下所示: 在react组件内部,我想获取此组件并显示它。到目前为止,这是我尝试过的方法,但不幸的是它没有用。api提取有效,但仅将组件显示为字符串。 我该如何在代码中的api获取的组件中使用它? 问题答案: 通过使用最新的Chrome,您可以执行以下操作: ProfilePage将是一个惰性组件。提取完成后将加载它。等待

  • 如果我在mysql数据库的列中有如下json 如何在mysql中选择同一对象名为'John'且checked=true的所有行。 json对象可能有更多的键,并且键可能没有特定的顺序。

  • 问题内容: 我有一个proyect用于加载查询: 在“ SELECT_BY_USER_ID”上是正常的字符串查询。 我在jar外部有一个YML配置,用于加载不同的配置,并且我也想使用此YML来加载查询。 示例YML: 但是我不知道如何直接从@Query值中的文件中加载,我试图这样做: 我能怎么做?谢谢。 问题答案: 如果您需要从资源文件夹中加载SQL,可以尝试使用spring-data- sqlf