'Migration v4 to v5 Breaks Styling of Basic MUI Components
I am upgrading from v4 to v5 and having significant problems that are inconsistent.
The <Button> component looks as it should on the Login page, but once logged in, the <Button> components look like they don't have any MUI styling, such as padding and color. I am thinking it has something to do with the themes because some files complain about theme.spacing while others do not.
I have no idea what I am doing wrong.
App.tsx
const theme = createTheme(
  adaptV4Theme({
    palette: {
      primary: {
        light: '#e57373',
        main: '#d32f2f',
        dark: '#d32f2f',
        contrastText: '#fff',
      },
      secondary: {
        light: '#9adcfb',
        main: '#03a9f4',
        dark: '#0288d1',
        contrastText: '#fff',
      },
    },
  }),
);
const LoggedInRouter = lazy(() => import('./routers/LoggedInRouter'));
const App: React.FC = () => {
  return (
    <StyledEngineProvider injectFirst>
      <ThemeProvider theme={theme}>
        <IonApp>
          <IonReactRouter>
            <Suspense fallback={<Loading />}>
              <IonRouterOutlet>
                <Switch>
                  <Route path="/login" component={Login} />
                  <Route path="/user" component={LoggedInRouter} />
                  <Route path="/" render={() => <Redirect to="/login" />} />
                </Switch>
              </IonRouterOutlet>
            </Suspense>
          </IonReactRouter>
        </IonApp>
      </ThemeProvider>
    </StyledEngineProvider>
  );
};
Login.tsx (Button looks as it should if compilation error theme.spacing is commented out)
/login
const useStyles = makeStyles(theme => ({
  root: {
    height: '100vh',
  },
  paper: {
    height: '75vh',
    margin: theme.spacing(8, 4),
    display: 'flex',
    flexDirection: 'column',
    alignItems: 'center',
  },
  logo: {
    maxWidth: '100%',
  },
}));
const Login = (): ReactElement => {
  const classes = useStyles();
  return (
    <>
      <Grid container className={classes.root}>
        <Grid item sm={6} component={Paper} elevation={6} square>
          <div className={classes.paper}>
            <Paper elevation={3}>
              <div className={classes.paper}>
                <Typography variant="h5">Log In To Your Account</Typography>
                <p></p>
                <div className={classes.root}>
                  <Button
                    type="button"
                    fullWidth
                    variant="contained"
                    color="primary"
                    disabled
                  >
                    Create Account
                  </Button>
                </div>
              </div>
            </Paper>
          </div>
        </Grid>
      </Grid>
    </>
  );
};
Settings.tsx (Buttons and other basic MUI components don't have any expected styling as shown in docs)
/user/settings
const useStyles = makeStyles(theme => ({
    margin: {
      margin: theme.spacing(3),
    },
    padding: {
      padding: theme.spacing(3),
    },
    connectionCard: {
      width: '100%',
    },
  }),
);
const Settings = (): ReactElement => {
  const classes = useStyles();
  const [value, setValue] = React.useState(0);
  return (
    <>
      <Paper className={classes.margin} elevation={3}>
          <Grid container spacing={2} className={classes.padding}>
            <Grid item md={4}>
              <Card className={classes.connectionCard} raised={true}>
                <CardContent>
                  <Typography variant="body1" component="p">
                    Test
                  </Typography>
                </CardContent>
                <CardActions>
                  <Button variant="contained" color="secondary">
                    Connect
                  </Button>
                </CardActions>
              </Card>
            </Grid>
          </Grid>
      </Paper>
    </>
  );
};
							
						Solution 1:[1]
https://mui.com/guides/migration-v4/#styles-broken-after-migrating-to-v5
When initially looking, I did not see this very last thing in the troubleshooting section. Maybe it was added recently, or I just missed it.
Sources
This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.
Source: Stack Overflow
| Solution | Source | 
|---|---|
| Solution 1 | Oh Great One | 
