This is right that expects the theme to be passed directly as a prop (theme={theme}), but since Redux is initialized inside , it’s not available at the top level.
To solve this, wrap in a component that connects to the Redux store and passes the theme as a prop.
Create a New AdminContainer Component
Since Redux is already set up inside , create a wrapper component (AdminContainer.jsx) that reads the theme from Redux and passes it to .
AdminContainer.jsx
import React from 'react'; import { useSelector } from 'react-redux'; import { Admin } from 'react-admin'; import Layout from './layout'; import login from './authProvider'; import dataProvider from './dataProvider'; import Theme from './store/reducers/themeReducer'; // Custom reducer import Configuration from './pages/Configuration'; import { Route } from 'react-router-dom'; const AdminContainer = () => { const theme = useSelector((state) => state.theme); // Get theme from Redux return ( <Admin theme={theme} // Pass the Redux theme state to Admin customReducers={{ theme: Theme }} layout={Layout} authProvider={login} dataProvider={dataProvider} loginPage={LoginPage} locale="pt" customRoutes={[ <Route key="configuration" path="/configuration" title="Configurações" component={Configuration} /> ]} > {/* Your resources go here */} </Admin> ); }; export default AdminContainer;
Update App.js
Now modify App.js to include the Redux <Provider> and use AdminContainer.
App.jsx
import React from 'react'; import { Provider } from 'react-redux'; import store from './store'; // Your Redux store import AdminContainer from './AdminContainer'; const App = () => { return (); }; export default App;
Work with our skilled React developers to accelerate your project and boost its performance.
Hire Reactjs Developers