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

React集成Unity WebGL报错:Cannot read properties of null (reading 'useState')

问题:React集成Unity WebGL时出现"Cannot read properties of null (reading 'useState')"错误

我正在搭建一个包含WebGL应用的基础React网站,已成功遵循React入门指南,并尝试通过react-unity-webgl的简单示例集成Unity WebGL应用,但出现了**"Cannot read properties of null (reading 'useState')"**的空值错误。

相关资源:

我的App.js代码如下:

import React from "react";
import { Unity, useUnityContext } from "react-unity-webgl";

function App() {
  const { unityProvider } = useUnityContext({
    loaderUrl: "Webbuild/Build/Webbuild.loader.js",
    dataUrl: "Webbuild/Build/Webbuild.data",
    frameworkUrl: "Webbuild/Build/Webbuild.framework.js",
    codeUrl: "Webbuild/Build/Webbuild.wasm",
  });
  
  return <Unity uunityProvider={unityProvider} />
}

export default App;

我尝试过查找其他解决方案,但大多不符合当前采用的简单示例场景,期望WebGL应用能像上述在线示例一样正常运行,恳请各位提供解决方案。


解决方案

1. 修正组件属性拼写错误

代码中<Unity>组件的属性名存在笔误:uunityProvider多了一个字母u,正确的属性名应为unityProvider。修正后代码的返回部分如下:

return <Unity unityProvider={unityProvider} />

2. 检查版本兼容性

useState空值错误常因React与react-unity-webgl版本不匹配导致。确认你的React版本(需18+)与react-unity-webgl版本适配,可执行以下命令更新:

# 升级React到最新稳定版
npm install react@latest react-dom@latest

# 安装适配版本的react-unity-webgl
npm install react-unity-webgl@latest

3. 验证Unity构建文件路径

从目录结构截图确认Webbuild文件夹是否位于项目的public目录下,确保loaderUrl等路径指向正确。若构建文件放在src目录下,需调整路径或配置webpack以处理静态资源。

4. 规范钩子使用方式

useUnityContext是React钩子,必须在函数组件的顶层调用,不可嵌套在条件语句或其他函数内,你的代码当前已符合要求,后续重构时需保持此规范。

按上述步骤逐一排查,优先修正拼写错误,大概率可解决当前问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.25 02:44:54