reactjs - 文件中的两个 useContext

标签 reactjs react-context

我想在同一个文件中使用两个 useContexts'。

import React, { useContext, useState } from 'react'
import { SubscribeContext } from '../NavBar'
import { AppContext } from '../../../Home'
import './Subscribe.css'

export default function SubscribePopup() {
    const { setSubscribePop } = useContext(SubscribeContext);
    const { error, setError } = useContext(AppContext);
    const [text, setText] = useState("");
    return (
        <div>
        </div>
    )
}

SubscribeContext 似乎工作正常。 但是 useContext(AppContext) 返回未定义

#AppContext File
import React, { createContext, useState } from 'react'
import Card from './components//Cards/Card'
import NavBar from './components/NavBar/NavBar'


export const AppContext = createContext();
export default function Home() {
    const [error, setError] = useState(false);
    return (
        <div>
            <AppContext.Provider value={{error, setError}}>

            </AppContext.Provider>
        </div>
    )
}

这里出了什么问题?

最佳答案

尝试为React Context创建初始状态,因为如果没有初始状态, react 上下文将返回未定义。

初始上下文

export const AppContext = createContext({ error: false })

组件

import React, { createContext, useState } from 'react'
import Card from './components//Cards/Card'
import NavBar from './components/NavBar/NavBar'

const state = {
  error: false
}

export const AppContext = createContext(state);
export default function Home() {
    const [error, setError] = useState(false);
    return (
        <div>
            <AppContext.Provider value={{error, setError}}>

            </AppContext.Provider>
        </div>
    )
}
export const AppContext = createContext({ error: false })

关于reactjs - 文件中的两个 useContext,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/72550077/

相关文章:

reactjs - 使用 React 上下文通过 AWS Amplify 保护路由

javascript - 如何在 React 中通过类名访问所有 dom 元素?

javascript - 无法读取上下文提供程序中 useReducer Hook 更新的状态

javascript - Graphql 查询为关系文档返回 null,查询中缺少字段但存在于 primsa admin 中

javascript - 如何修复滚动时显示 div( react )

javascript - 每当我尝试使用 useContext Hook 使用分派(dispatch)时,我都会收到 "Uncaught TypeError: dispatch is not a function"

reactjs - "TypeError: react.useContext is not a function"使用 React 测试库模拟上下文提供程序时

javascript - 同一个 Provider 的多个声明是否会在 React 中创建新实例?

javascript - 使用 "dotnet new react -o my-app"中的默认代码时,为什么会出现 JSON.parse 错误?

reactjs - 在单独的定义文件中扩展 TypeScript 2.5.2 Component Props 定义