'Multiple providers and Router in React hooks
I'm using multiple contexts and reducers in React hooks.
This is my App.js file
import React from "react";
import { BrowserRouter as Router, Route, Switch } from "react-router-dom";
import Map from "./components/Map";
import Header from "./components/Header";
import Signup from "./components/Auth/Signup";
import Login from "./components/Auth/Login";
import UserList from "./components/User/UserList";
import "mapbox-gl/dist/mapbox-gl.css";
import { ApolloProvider } from "react-apollo";
import { ApolloClient } from "apollo-client";
import { WebSocketLink } from "apollo-link-ws";
import { InMemoryCache } from "apollo-cache-inmemory";
import { default as keysConfig } from "./keys.config";
import AuthProvider from "./providers/authProvider";
import withRoot from "./providers/withRoot";
import PageContent from "./pages/pageContent";
import ProtectedRoute from "./routePermissions/ProtectedRoute";
import AdminRoute from "./routePermissions/AdminRoute";
import PinProvider from "./providers/pinProvider";
import UserProvider from "./providers/userProvider";
const wsLink = new WebSocketLink({
uri: `${keysConfig.WssBaseUrl}/graphql`,
options: {
reconnect: true
}
});
const client = new ApolloClient({
link: wsLink,
cache: new InMemoryCache()
});
const App = () => {
return (
<Router>
<ApolloProvider client={client}>
<AuthProvider>
<PageContent>
<Header />
<Switch>
<PinProvider>
<ProtectedRoute exact path="/" component={Map} />
</PinProvider>
<Route exact path="/login" component={Login} />
<Route exact path="/signup" component={Signup} />
<UserProvider>
<AdminRoute exact path="/userlist" component={UserList} />
</UserProvider>
</Switch>
</PageContent>
</AuthProvider>
</ApolloProvider>
</Router>
);
};
export default withRoot(App);
I'm using multiple contexts and reducers. It makes me use multiple providers. But I'd like to use the provider to the specific route.
When I use the Route like the code snippet, ProtectedRoute is not working.
I hope someone help me to solve this issue. You can provide me the good way how to combine the multiple contexts and reducers in react hooks more efficiently.
Sources
This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.
Source: Stack Overflow
| Solution | Source |
|---|
