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

如何在React组件中通过动态变量以点表示法调用react-nba-logos图标组件

这个需求完全可以实现。
你最初的写法失效是因为JSX中的点语法会将NEW_VAR视为固定的属性名,而非动态读取变量的值,无法匹配到对应图标组件。你可以通过对象方括号访问语法,动态获取对应三字码的图标组件后再渲染即可,示例代码如下:

import React from 'react';
import * as NBAIcons from 'react-nba-logos';

const Example = () => {
  const NEW_VAR = 'NYK';
  // 动态获取对应球队的图标组件
  const TargetLogo = NBAIcons[NEW_VAR];
  // 增加判空逻辑,避免传入无效三字码时出现渲染报错
  return TargetLogo ? <TargetLogo /> : null;
};

export default Example;

如果需要给图标传递尺寸、颜色等属性,直接给动态取出的组件传参即可,示例:

<TargetLogo size={64} fill="#17408B" />

内容的提问来源于stack exchange,提问作者Nikita Choty

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 19:45:09