简体   繁体   English

反应上下文/自己的钩子

[英]React Context / own hook

I am having a problem with importing HiddenProvider to App.js It gives me this bug "Attempted import error: 'HiddenProvider' is not exported from './HiddenContext'. I would be very grateful if I got some help. Thanks in Advance.我在将 HiddenProvider 导入 App.js 时遇到问题它给了我这个错误“尝试导入错误:'HiddenProvider'不是从'./HiddenContext'导出的。如果我得到一些帮助,我将非常感激。提前致谢。

import React, { useState } from 'react';
export const HiddenContext =React.createContext(false)

export const HiddenProvider = ({children}) => {
    const[hideButton, setHideButton]= React.useState(false)

    function handleClick (){
        setHideButton(true)
    }

    return(
        <HiddenContext.Provider value ={{hideButton,handleClick}}>
            {children}
        </HiddenContext.Provider>
    );
}
import React, { useState } from 'react';
import './App.css';
import Sidebar from './Sidebar';
import ImageComponent from './ImageComponent';
import { HiddenProvider } from './HiddenContext';
import { HiddenContext} from './HiddenContext';

function App() {
    const{ hideButton}=React.useContext(HiddenContext)
    return (
        <div className="App">  
            <Sidebar />
            <HiddenProvider>
                <ImageComponent hideButton={hideButton}   />
            </HiddenProvider>                            
        </div>
    );    
}

export default App;

You are using useContext wrong.您正在使用useContext错误。 It has to be in a component that is inside/under the Provider .它必须位于Provider内部/下方的组件中。 You could move useContext inside the ImageComponent .您可以在ImageComponent内移动useContext Or move the Provider into index.js .或者将Provider移动到index.js

see react docs: useContext请参阅反应文档: useContext

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM