Właściwość "nie istnieje dla typu "ciąg" przy użyciu makestyles @mui

0

Pytanie

Mam następujący kod:

    const useStyles = makeStyles(() => ({
  dialog: {
    root: {
      position: 'absolute'
    },
    backdrop: {
      position: 'absolute'
    },
    paperScrollPaper: {
      overflow: 'visible'
    },
    paper: {
      background: 'none',
      boxShadow: 'none',
      overflow: 'hidden'
    }
  },
}))
    
export const LoadingBackdrop = (props: any) => {
  const classes = useStyles()
  const backdropProps = {
    disableEscapeKeyDown: true,
    disableAutoFocus: true,
    disableEnforceFocus: true,
    disableScrollLock: true,
    disablePortal: true,
  }
  return (
    <Dialog
      {...backdropProps}
      fullWidth
      className={classes.dialog.root}
      classes={{
        paperScrollPaper: classes.dialog.paperScrollPaper,
        paper: classes.dialog.paper,
        paperFullWidth: classes.dialog.paper
      }}
      BackdropProps={{
        classes: { root: classes.dialog.backdrop }
      }}
      style={{ position: 'absolute' }}
      {...props}
    >
      <Loading />
    </Dialog>
  )
}

W składniku LoadingBackDrop otrzymuję następujący błąd od ts eslint:

Właściwość "root" nie istnieje dla typu "string". ts(2339)

To samo odnosi się do innych rodzajów użytkowania classes.dialog, tylko zmieniając nazwę właściwości...

Jak mogę skomentować lub wprowadzić funkcję makestyles (lub połączenie haczyka), aby naprawić ten błąd?

1

Najlepsza odpowiedź

1

Nie można włożyć style tak, jak ty to robisz - muszą być na jeden poziom głębiej. Na przykład:

const useStyles = makeStyles(() => ({
  root: {
    position: 'absolute'
  },
  backdrop: {
    position: 'absolute'
  },
  paperScrollPaper: {
    overflow: 'visible'
  },
  paper: {
    background: 'none',
    boxShadow: 'none',
    overflow: 'hidden'
  }
}))

I:

<Dialog
  {...backdropProps}
  fullWidth
  className={classes.root}
  ...

W dokumentacji ich style są dodatkowe przykłady.

2021-11-23 21:12:21

I to wszystko! Dziękuję
Roger Peixoto

W innych językach

Ta strona jest w innych językach

Русский
..................................................................................................................
Italiano
..................................................................................................................
Română
..................................................................................................................
한국어
..................................................................................................................
हिन्दी
..................................................................................................................
Français
..................................................................................................................
Türk
..................................................................................................................
Česk
..................................................................................................................
Português
..................................................................................................................
ไทย
..................................................................................................................
中文
..................................................................................................................
Español
..................................................................................................................
Slovenský
..................................................................................................................