【发布时间】:2022-08-10 15:02:22
【问题描述】:
在 React js 中使用上下文 api 显示白色空白屏幕 我正在运行没有错误的代码,但是当我访问 localhost:3000 我得到一个空白屏幕。 这些是项目中的 React js 文件,如果我不使用 Context-API,编码效果很好。
App.js
import \"./App.css\";
import { UserContextProvider } from \"./contexts/user\";
import { Home } from \"./pages\";
function App() {
return (
<div className=\"app\">
<UserContextProvider>
<Home />
</UserContextProvider>
</div>
);
}
export default App;
user.js
import { createContext, useState } from \"react\";
export const UserContext = createContext();
export const UserContextProvider = (props) => {
const [user, setUser] = useState(null); // user value can be used anywhere
return (
<UserContext.Provider value={{user: [user,setUser]}}>
{props.childern}
</UserContext.Provider>
);
};
SignInBtn.js
import React,{useContext} from \"react\";
import \"./style.css\";
import GoogleIcon from \"@mui/icons-material/Google\";
import { signInWithGoogle } from \"../../services/auth\";
import { UserContext } from \"../../contexts/user\";
const icon = {
fontSize: 14,
};
function SignInBtn() {
const [user, setUser] = useContext(UserContext).user;
const signInBtnClick = async () =>{
let userBySignIn = await signInWithGoogle()
if(userBySignIn) setUser(userBySignIn)
}
return (
<div className=\"signInBtn\" onClick={signInBtnClick}>
<div className=\"btn\">
<p>Signin with </p>
<GoogleIcon style={icon}/>
</div>
</div>
);
}
export default SignInBtn;
标签: reactjs react-hooks react-context use-context