You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.03 15:15:27