Как я могу удалить навигационную панель из React-Admin?

#reactjs #react-redux #material-ui #next.js #react-admin

Вопрос:

У меня возникли некоторые проблемы при попытке удалить/удалить навигационную панель по умолчанию из react-admin.

введите описание изображения здесь

Как вы можете видеть, моя оригинальная навигационная панель находится в нижней части навигационной панели react-admin, которая, если я проверю и удалю ее, будет выглядеть примерно так:

введите описание изображения здесь Сообщение, учетная запись и значок профиля будут сдвинуты вниз. Это было только тогда, когда я удалил весь класс синей навигационной панели. То, что вы видите здесь, — это то, чего я на самом деле хочу достичь.

До сих пор это мой код: dashboard.js

 import React, { useState, useEffect } from 'react';
import { requireAuth } from 'util/auth.js';
import users from '../users';
import posts from '../posts';

// Initialize the dataProvider before rendering react-admin resources.
import { Admin, Resource } from 'react-admin';

function DashboardPage(props) {

  return (
    <Admin dataProvider={dataProvider}>
      <Resource name="Post" {...posts} />
      <Resource name="User" {...users} />
    </Admin>
  );
}

export default requireAuth(DashboardPage);
 

И это мое _app.js

 import React from "react";
import Navbar from "components/Navbar";
import Footer from "components/Footer";
import { AuthProvider } from "util/auth.js";
import { ThemeProvider } from "util/theme.js";
import { QueryClientProvider } from "util/db.js";

function MyApp({ Component, pageProps }) {
  return (
    <QueryClientProvider>
      <ThemeProvider>
        <AuthProvider>
          <>
            <Navbar
              color="default"
              logo="https://images.squarespace-cdn.com/content/v1/someRandomLogo"
            />

            <Component {...pageProps} />

            <Footer
              bgColor="light"
              size="normal"
              bgImage=""
              bgImageOpacity={1}
              description="Footer admin"
              sticky={true}
            />
          </>
        </AuthProvider>
      </ThemeProvider>
    </QueryClientProvider>
  );
}

export default MyApp;
 

Я пытался добавить display:none; , но это не работает, потому что при входе и выходе появляется синяя навигационная панель, чего я не хочу. Я буду признателен вам за помощь!

Ответ №1:

Admin Компонент обладает layout свойством, позволяющим переопределять существующую компоновку, включая существующую навигацию.

  <Admin layout={CustomLayout} dataProvider={dataProvider}>
  <Resource name="Post" {...posts} />
  <Resource name="User" {...users} />
</Admin>

import { Layout } from 'react-admin';

const CustomLayout = (props) => <Layout
{...props}
appBar={null}
 

/>;

Например, если вы не хотите отображать существующую навигацию, вы можете передать null ее как значение вызываемой опоры appBar . С другой стороны, если вы хотите создать свою пользовательскую навигацию, вам просто нужно назначить свою пользовательскую навигацию(компонент) в качестве значения appBar prop.

Я надеюсь, что это предложение может быть полезным.