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

React使用useContext钩子无法获取上下文name值问题求助

useContext无法获取name字段的问题修复

核心错误点

你的代码存在2个会导致上下文失效的关键问题:

    1. AuthContext.js 中未导入createContext方法就直接调用,会触发引用错误,导致上下文对象本身创建失败
    1. App.js 中AuthProvider的导入方式错误:AuthProvider是命名导出,你用默认导入的写法,实际拿到的是默认导出的AuthContext上下文对象,把上下文对象当做Provider组件渲染,根本无法向子组件传递上下文值

具体修复步骤

1. 修复AuthContext.js,补充缺失的导入

修改后的完整代码:

// 新增这行,从react导入createContext
import { createContext } from 'react';

const AuthContext = createContext()

export default AuthContext;

export const AuthProvider = ({children}) => {
    return (
        <AuthContext.Provider value={{name:"Dennis"}}>
            {children}
        </AuthContext.Provider>
    )
}

2. 修复App.js中AuthProvider的导入语句

原来的默认导入写法错误,改成命名导入:

// 替换原来错误的默认导入写法
import { AuthProvider } from './context/AuthContext';

App.js其余代码不需要改动。

3. 可选优化:清理Header.js的无效导入

Header.js中导入了未使用的createContext,可以直接删掉,修改后导入部分如下:

import React, { useContext } from 'react'
import { Link } from 'react-router-dom'
import AuthContext from '../context/AuthContext'

验证结果

修改完成后保存刷新页面,Header组件就能正常从上下文读取到name字段,页面会正常显示Hello Dennis。


内容的提问来源于stack exchange,提问作者isabella-re

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.29 08:33:12