Открытие компонента меняет общий стиль App-Mui

Я использую тему комплекта Mui и Material для создания проекта. Я использую тему, предоставленную набором материалов, и я также использую пользовательский css для изменения некоторых функций компонентов по умолчанию, предоставляемых набором материалов, но я не могу переопределить стили. Так что сейчас я застрял с темой по умолчанию, предоставленной Комплект материалов Но недавно я добавил еще один компонент в свое приложение и заметил, что всякий раз, когда я открываю этот компонент, общий стиль приложения меняется, и, к моему удивлению, это были предоставленные мной пользовательские стили, которые раньше не работали. Мой вопрос- В чем может быть причина такого поведения

Любая помощь будет принята с благодарностью

Это мой App.js

import './App.css';
// @mui material components
import { ThemeProvider } from "@mui/material/styles";
import CssBaseline from "@mui/material/CssBaseline";
// Material Kit 2 React themes
import theme from "assets/theme";
import { BrowserRouter, Route, Routes } from 'react-router-dom';
import HomeSkeleton from 'components/Drawer/Drawer';
import SignInCover from 'components/sign-in/Signin';
import DSAManagement from 'components/DSAManagement/DSAManagement';
import LeadManagement from 'components/LeadManagement/LeadManagement';
import ResponsiveDrawer from 'components/Drawer/ResponsiveDrawer';
import NotificationsComp from 'components/notifications/NotificationsComp';
import Notifications from 'components/common/Notifications/Notifications';

function App() {
  return (
    <ThemeProvider theme = {theme}>
      <CssBaseline />
      <BrowserRouter>
        <Routes>
          <Route exact path='/' element = {<SignInCover/>} />
          <Route exact path='/res' element = {<ResponsiveDrawer/>}></Route>
          <Route exact path='/home' element = {<HomeSkeleton/>} >
            <Route exact path='dsa-management' element = {<DSAManagement />}/>
            <Route exact path='lead-management' element = {<LeadManagement />}/>
            <Route exact path='payout-management' element = {<DSAManagement />}/>
            <Route exact path='product-management' element = {<DSAManagement />}/>
            <Route exact path='notifications' element = {<NotificationsComp />}/>
            <Route exact path='user-notifications' element = {<Notifications />} />
          </Route>
        </Routes>
      </BrowserRouter>
    </ThemeProvider>
  );
}

export default App;

И это тревожный компонент

import React from 'react'
import { TextareaAutosize, Toolbar } from '@material-ui/core'
import { Box } from '@material-ui/core'
import { Icon } from '@material-ui/core'
import { IconButton } from '@material-ui/core'
import { AccessTime, Bookmark } from '@material-ui/icons'
import { Button, Grid } from '@mui/material'
import NotificationTabs from './NotificationTabs'

const NotificationsComp = () => {
    return(
    <>
    <Grid container>
      <Grid item md = {12}>
        <Toolbar disableGutters sx = {{padding: 0}}>
          <Box sx = {{ display: { xs: 'none', md: 'flex' } }}>
          <IconButton size = "medium" aria-label = "filter" color = "inherit">
              <Icon>filterList</Icon>
          </IconButton>
          <Button variant = "text" color='black' 
              sx = {{
                  display: 'inline-block', 
                  fontSize: '0.8rem', p:0, 
                  mr: '1rem',
                  letterSpacing: 0}}>
                  Filter
              </Button>
          <Button variant = "text" color='black' 
              sx = {{
                  display: 'inline-block', 
                  fontSize: '0.8rem', p:0, 
                  mr: '1rem',
                  letterSpacing: 0}}>
                  (500 DSA selected)
              </Button>
          </Box>
        </Toolbar>
      </Grid>
      <Grid item md = {12}>
        <TextareaAutosize  style = {{height: '10rem',width: '100%', padding: '1rem'}} placeholder = {'Write Notification Text here'}></TextareaAutosize>
        <Toolbar disableGutters>
          <Box sx = {{ display: { xs: 'none', md: 'flex' }, px: 0 }} >
            <IconButton size = "medium" aria-label = "show 4 new mails" color = "inherit">
              <Icon>send</Icon>
            </IconButton>
            <Button variant = "text" color='black' 
              sx = {{
                display: 'inline-block', 
                fontSize: '0.8rem', p:0, 
                mr: '1rem',
                letterSpacing: 0}}>
                  Send Notification
            </Button>
            <IconButton
            size = "medium"
            aria-label = "show 17 new notifications"
            color = "inherit"
            >
              <AccessTime/>
            </IconButton>
            <Button variant = "text" color='black' 
              sx = {{
                display: 'inline-block', 
                fontSize: '0.8rem', p:0, 
                mr: '1rem',
                letterSpacing: 0}}>
                  Schedule
            </Button>
            <IconButton
              size = "medium"
              aria-label = "save notifications"
              color = "inherit"
            >
            <Bookmark/>
            </IconButton>
            <Button variant = "text" color='black' 
              sx = {{
                display: 'inline-block', 
                fontSize: '0.8rem', p:0, 
                mr: '1rem',
                letterSpacing: 0}}>
                  Save
            </Button>
          </Box>
        </Toolbar>
      </Grid>
      <Grid item md = {12}>
        <NotificationTabs/>
      </Grid>
    </Grid>
    </>    
    )
}
export default NotificationsComp

Можете ли вы создать минимальный рабочий прототип, используя что-то вроде codeandbox.io.

Shivam Sharma 23.03.2022 08:04
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
0
1
30
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Решение


Причина ->

Общий css менялся, потому что рассматриваемый компонент имел разные пути импорта для компонентов mui, чем пути, которые были установлены в остальных компонентах для всего приложения.

Объяснение -> Возьмем, например, если ->

В остальных компонентах Box был импортирован из '@mui/material/Box, но в компоненте NotificationsComp он был импортирован из '@material-ui/core. Поэтому, когда этот компонент загружается, он вводит еще несколько классов css, которые переопределяют существующие классы css для этих компонентов и, следовательно, изменения в css.

Таким образом, установка тех же путей для компонентов mui в <NotificationsComp/>, что и в остальной части приложения, устранила проблему.

Другие вопросы по теме