第一个访存调用返回空数组调用,但在第二个访存调用上工作,依此类推?

时间:2018-11-14 21:01:33

标签: reactjs fetch fetch-api

如上所述,每当我获取数据以将值设置为状态时,它仅在第二次输入收费金额,货币和fysigned字段时才设置状态。我的主要问题是,为什么我第一次在这些字段中输入值时会获取一个空数组? 该值首次未定义 enter image description here enter image description here

代码

setUSDValue() {
const { AmountCharged, Currency, FYSigned} = this.state;

if(AmountCharged && Currency && FYSigned)
{
  fetch(`http://ca-fpscfb2:2000/USDValueExchangeRateValue?rateYear=${FYSigned}&USD=${Currency}&CAD=${Currency}&INR=${Currency}&GBP=${Currency}`)
  .then(response => response.json().then(response =>  
    this.setState(
    { 
      exchangeRateVal: response.data 

    }

    )))
  .then( 
    this.state.exchangeRateVal && this.state.exchangeRateVal.map((rate) =>
    (
      this.setState({
        USDValue: rate.USD
      })
    ))  
  )
}




}

1 个答案:

答案 0 :(得分:1)

问题是调用if code='P';时状态不会立即更新。如果您需要在状态更新后直接运行代码,请尝试使用回调函数:

this.setState