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

React嵌入含模块Script的足球API组件报错,求快速解决办法

React嵌入API-Football实时比分组件的解决方案

1. 解决「Cannot use import statement outside a module」错误

你动态创建script时遗漏了原标签里的type="module"属性,这是导致语法错误的核心原因——该widget脚本是ES模块,必须声明类型才能正常运行。

2. 正确渲染容器DIV与配置属性

不需要手动将data-host、data-key等属性作为请求头发送,widget脚本会自动读取容器DIV上的data-*属性来完成配置。在React中只需用JSX正常渲染该DIV,注意将class改为React支持的className。

3. 完整组件示例

import { useEffect } from 'react';

const FootballLiveScore = () => {
  useEffect(() => {
    // 避免重复加载脚本
    let script = document.querySelector('script[src="https://widgets.api-sports.io/football/1.1.8/widget.js"]');
    
    if (!script) {
      script = document.createElement('script');
      script.src = 'https://widgets.api-sports.io/football/1.1.8/widget.js';
      script.type = 'module'; // 必须添加,解决模块语法错误
      script.async = true;
      document.body.appendChild(script);
    }

    // 组件卸载时清理脚本
    return () => {
      if (script?.parentNode) {
        script.parentNode.removeChild(script);
      }
    };
  }, []);

  return (
    <div
      id="wg-api-football-livescore"
      data-host="api-football-v1.p.rapidapi.com"
      data-refresh="60"
      data-key="Your-Api-Key-Here" // 替换为你的有效API Key
      data-theme=""
      data-show-errors="false"
      className="api_football_loader"
    />
  );
};

export default FootballLiveScore;

额外注意事项

  • 确保你的API Key已在API-Sports平台完成认证并开通相关权限,否则widget无法正常获取数据。
  • 调试时可将data-show-errors改为true,方便查看控制台的错误信息定位问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.10 06:55:17