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

使用Material Tailwind时出现useContext空指针错误求助

解决React+TypeScript项目中Material Tailwind UI的useContext错误

错误分析

从报错信息来看,核心问题是Material Tailwind的useTheme钩子无法正确获取上下文,触发useContext调用失败,大概率由配置语法错误、多React实例或依赖兼容性问题导致。以下是针对性解决步骤:

1. 修复Tailwind配置文件语法问题

你的tailwind.config.ts存在ES模块与CommonJS混用、插件重复引入的问题,修改如下:

import graviadTheme from "./graviad-theme.js";
import withMT from "@material-tailwind/react/utils/withMT";

export default withMT({
    content: ["./src/**/*.{html,js,ts,tsx}"],
    theme: {
        extend: {
            colors: graviadTheme.colors,
            fontFamily: graviadTheme.fontFamily,
            fontSize: graviadTheme.fontSize,
            boxShadow: graviadTheme.boxShadow,
            borderRadius: graviadTheme.borderRadius,
        },
    },
    plugins: [],
});
  • 把module.exports替换为export default,保持ES模块语法统一
  • 移除plugins中的tailwindcss和autoprefixer,withMT工具已自动集成这些依赖
  • 修正content路径里的空格,确保文件匹配规则正常生效

2. 排查多React实例问题

项目中存在多个React副本会直接导致钩子调用失败,执行命令检查依赖树:

npm ls react

如果输出显示多个React版本,执行依赖合并:

npm dedupe

3. 清除缓存并重新安装依赖

删除旧依赖和锁文件,重新安装确保版本一致:

rm -rf node_modules package-lock.json
npm install

同时重置React开发服务器缓存:

npm start --reset-cache

4. 验证自定义主题文件有效性

确保graviad-theme.js正确导出主题配置,无语法错误,示例结构:

export default {
    colors: {
        // 你的自定义颜色配置
    },
    fontFamily: {
        // 你的自定义字体配置
    },
    // 其他主题属性
};

5. 确认Material Tailwind版本兼容性

当前使用的@material-tailwind/react@2.1.9与React 18.3.1理论兼容,若问题仍存在,尝试升级到最新稳定版:

npm install @material-tailwind/react@latest

额外检查

  • 确认所有使用Material Tailwind组件的代码都在ThemeProvider包裹范围内(你的index.tsx配置已满足此要求)
  • 检查App.tsx中是否存在违反钩子规则的代码(当前代码无明显问题)

内容的提问来源于stack exchange,提问作者Hoàng Đức Bạch

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.24 06:02:19