React中如何通过State存储的货币值获取API对应货币价格?
问题解决方法
你遇到的问题核心是:用.访问对象属性时,currency会被当作字面量属性名,而不是你State里存储的变量值,自然找不到对应键,所以返回undefined。
正确写法是用方括号语法访问对象属性,它会把括号里的变量解析成对应的字符串,匹配对象的键:
console.log(data.market_data.current_price[currency])
给你一个完整的组件示例参考:
import { useState, useEffect } from 'react'; function CurrencyPrice() { const [currency, setCurrency] = useState("ars"); const [price, setPrice] = useState(null); useEffect(() => { // 模拟API请求逻辑 const fetchData = async () => { const res = await fetch('你的API地址'); const data = await res.json(); // 用方括号语法获取对应货币价格 setPrice(data.market_data.current_price[currency]); }; fetchData(); }, [currency]); // currency变化时重新请求获取对应价格 return ( <div> <select value={currency} onChange={(e) => setCurrency(e.target.value)}> <option value="aed">AED</option> <option value="ars">ARS</option> <option value="bdt">BDT</option> </select> {price && <p>当前价格:{price}</p>} </div> ); } export default CurrencyPrice;
内容的提问来源于stack exchange,提问作者Emmanuel uzoezie
相关产品推荐
相关产品推荐

