【发布时间】:2021-06-17 20:06:14
【问题描述】:
我创建了一个组件,用于在将硬币名称传递给组件时返回价格值。
在函数内部的控制台输出中,显示结果但不返回值。
我的代码:
MarketPrice.js
import React, { useEffect, useState } from "react";
import { Text } from "react-native";
import axios from "axios";
function round(num) {
var m = Number((Math.abs(num) * 100).toPrecision(15));
return (Math.round(m) / 100) * Math.sign(num);
}
const goForAxios = async (coin) => {
//setLoading(true);
const response = await axios.get(
`https://min-api.cryptocompare.com/data/price?fsym=${coin}&tsyms=INR`
);
console.log(response.data.INR.toString());
return response.data.INR.toString();
};
export default function MarketPrice(props) {
console.log(props.coin);
const marketPrice = goForAxios(props.coin);
// return marketPrice;
console.log("MarketPrice: " + marketPrice);
return <Text>{round(marketPrice)}</Text>;
}
UI 中的输出显示为 NaN 在控制台上:
119.12
ADA
BTC
3058216.2
【问题讨论】:
-
您需要为组件添加状态,因为价格值仅在成功响应请求后确定。你可以查看 useState 钩子
标签: react-native axios