对提取的数据进行反应

时间:2018-05-01 14:18:18

标签: javascript reactjs api react-router fetch

我是根据从父元素作为prop传递的ID从API获取数据。我把一切都运行得很好,除了当我尝试渲染数据时它没有显示任何东西。获取成功是因为ComponentWillReceiveProps中的console.log正好显示了我需要的内容。

代码:

redis.replicate_commands()
local t = redis.call('TIME')
return redis.call('ZADD', KEYS[1], tonumber(t[0]), ARGV[1])
ComponentDidMount中的

{this.state.team2}可以正常工作,但是来自componentWillReceiveProps的{this.state.testTeam}没有,即使在console.log中它也存在。我在这里错过了一些简单的问题或问题是什么?谢谢你的帮助。

1 个答案:

答案 0 :(得分:0)

使用localStorage让它工作。

  componentWillReceiveProps(newProps) {
    if (newProps.matchId !== this.props.matchId) {
      fetch(matchAPI + newProps.matchId)
      .then((matchResponse) => matchResponse.json())
      .then((matchfindresponse) => {
        console.log(matchfindresponse.team1.name);
        console.log(this.props.matchId + ' ' + newProps.matchId);
        this.setState({
          testTeam:matchfindresponse.team1.name,
        })
        var team1 = localStorage.setItem('team1', matchfindresponse.team1.name);
        var team2 = localStorage.setItem('team2', matchfindresponse.team2.name);
      })
    }
  }