如上所述,每当我获取数据以将值设置为状态时,它仅在第二次输入收费金额,货币和fysigned字段时才设置状态。我的主要问题是,为什么我第一次在这些字段中输入值时会获取一个空数组? 该值首次未定义
代码
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
})
))
)
}
}
答案 0 :(得分:1)
问题是调用if code='P';
时状态不会立即更新。如果您需要在状态更新后直接运行代码,请尝试使用回调函数:
this.setState