身份验证上下文:
import { createContext } from "react";
export const AuthContext = createContext(null);
App.js:
const App = () => {
const isLogin = false;
if (isLogin) {
return (
<RouterProvider router={privateRoute} />
);
} else {
return (
<RouterProvider router={publicRoute} />
);
}
};
export default App;
我试着把<RouterProvider>
放在AuthContext
中,如下所示:
<AuthContext.RouterProvider router={privateRoute} />
就像这样
<AuthContext>
<RouterProvider router={privateRoute} />
</AuthContext>
这些选择都不起作用我做错了什么?
2条答案
按热度按时间bxjv4tth1#
问题是
AuthContext
没有任何RouterProvider
属性,您尝试使用的代码实际上也没有使用React上下文Provider
组件和值。只需用
AuthContext.Provider
组件 PackageApp
组件,并确保传递上下文值。示例:
ix0qys7i2#
您正尝试将
AuthContext
与RouterProvider
一起使用,但AuthContext
没有名为RouterProvider
的属性或组件。要将
AuthContext
与RouterProvider
结合使用,您需要将RouterProvider
组件 Package 在使用AuthContext
值的组件中(* 即useContext(AuthContext)*)。这里有一个代码片段可以帮助您...在这里,我们使用
AuthContext
value来确定routes
的值,然后将其与RouterProvider
一起使用并且您需要将
App
组件 Package 在AuthContext
中,例如...