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

React项目中Spine-Player加载JSON文件报错无法渲染求助

问题原因

你错误地将已经被webpack解析后的JSON对象/Atlas文本传给了SpinePlayer的jsonUrl和atlasUrl参数。这两个参数要求传入的是资源文件的URL路径,而非解析后的数据。SpinePlayer会把你传入的解析数据当作URL去请求,最终返回404页面(HTML内容),自然会触发JSON解析错误。

解决方案

方案1:传入资源URL路径

通过require获取资源的实际URL(而非解析后的数据),并在组件挂载后初始化播放器(确保DOM容器已存在):

import { SpinePlayer } from "@esotericsoftware/spine-player";
import { useEffect } from "react";

const SpineGirl2 = () => {
  useEffect(() => {
    // 获取资源的URL路径
    const jsonUrl = require("../../images/spine/ai_girl/ai_girl.json").default;
    const atlasUrl = require("../../images/spine/ai_girl/ai_girl.atlas").default;

    const player = new SpinePlayer("player-container", {
      jsonUrl,
      atlasUrl,
      animation: "idle_anim",
      showControls: false,
      backgroundColor: "#00000000",
      alpha: true,
      viewport: {
        debugRender: true,
      },
    });

    // 组件卸载时销毁播放器,避免内存泄漏
    return () => player.dispose();
  }, []);

  return <div id="player-container"></div>;
};
export default SpineGirl2;

方案2:直接传入解析后的数据

如果已经导入了解析后的JSON对象和Atlas文本,改用json和atlas参数(不带Url后缀)直接传入数据:

import { SpinePlayer } from "@esotericsoftware/spine-player";
import { useEffect } from "react";
import atlasData from "../../images/spine/ai_girl/ai_girl.atlas";
import jsonData from "../../images/spine/ai_girl/ai_girl.json";

const SpineGirl2 = () => {
  useEffect(() => {
    const player = new SpinePlayer("player-container", {
      json: jsonData, // 直接传解析后的JSON对象
      atlas: atlasData, // 直接传Atlas文本内容
      animation: "idle_anim",
      showControls: false,
      backgroundColor: "#00000000",
      alpha: true,
      viewport: {
        debugRender: true,
      },
    });

    return () => player.dispose();
  }, []);

  return <div id="player-container"></div>;
};
export default SpineGirl2;
关键注意事项
  • 必须通过useEffect(空依赖数组)初始化播放器,确保player-container元素已渲染到DOM中,避免SpinePlayer找不到容器。
  • 务必添加清理函数销毁播放器,防止内存泄漏。

内容的提问来源于stack exchange,提问作者Рустам Асланов

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.12 00:26:23