【发布时间】:2020-03-25 18:54:09
【问题描述】:
为什么状态没有更新?我已检查我是否以正确的形式从 api 接收数据。如果我更改结果而不是尝试将其添加到新数组并将其置于状态,我可以打印结果。我还检查了它是否存在于范围内,据我所知,它应该可以工作,因为我使用的是箭头函数。在 map 函数之后我仍然收到一个空数组。
我错过了什么?
class CurrencyForm extends React.Component {
state = {
currencies: [],
}
componentDidMount(){
this.fetchCurrencies();
}
fetchCurrencies = async () => {
const response = await axios.get('some address')
response.data.map(currency =>
this.setState({currencies: [...this.state.currencies,currency.id]}
))
}
【问题讨论】:
-
难道你不想做类似
this.setState({ currencies: response.data });的事情吗?您的代码似乎不正确,因为您正在映射每个响应数据元素并调用setState -
也许这是一个糟糕的解决方案,但我收到的数据是多个 JSON 对象的形式,我只想显示一个对象中的一个值。
-
@DanielDunér 检查我的答案,您可以将代码减少到一个 setstate 调用
标签: javascript reactjs ecmascript-6 axios