我是新手做出反应,我不明白为什么在componentDidMount上设置状态时出现以下错误。我对类似的错误进行了研究,我知道反应想要得到一个数字,而不是一个承诺。但是,我很确定我会通过编写.then(res => res.json().then(data => data)
来解析数字。所以我无法弄清楚错误来自哪里。
Uncaught Error: Objects are not valid as a React child (found: [object Promise]). If you meant to render a collection of children, use an array instead.
in p (created by Info)
in div (created by Info)
in Info
这是我用来获取数字的函数:
const get_eth = wallet =>
fetch(
`https://api.etherscan.io/api?module=account&action=balance&address=${wallet}&tag=latest`
)
.then(res =>
res.json().then(data => data["result"] / 10 ** 18)
)
.catch(err => console.log(err));
这是setState:
componentDidMount() {
this.setState({eth_q: get_eth("0x0975ca9f986eee35f5cbba2d672ad9bc8d2a0844")})
}
答案 0 :(得分:0)
我想你想要:
const get_eth = wallet =>
fetch(API)
.then(res => res.json())
.then(data => data["result"] / 10 ** 18)
.catch(err => console.log(err));
也就是说,您将.then()
链接到.json()
而不是fetch()
。
然后,在componentDidMount()
:
componentDidMount() {
get_eth('0x0975ca9f986eee35f5cbba2d672ad9bc8d2a0844').then(res => {
this.setState({ eth_q: res });
});
}