我有以下代碼:
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>
)
}
在 LoadingBackDrop 組件中,我從 ts eslint 收到以下錯誤:
型別“string”.ts(2339) 上不存在屬性“root”
同樣適用于 classes.dialog 的其他用途,只更改屬性的名稱......
如何注釋或鍵入 makestyles 函式(或鉤子呼叫)來修復此錯誤?
uj5u.com熱心網友回復:
您不能按照自己的方式嵌套樣式 - 它們需要深入一層。例如:
const useStyles = makeStyles(() => ({
root: {
position: 'absolute'
},
backdrop: {
position: 'absolute'
},
paperScrollPaper: {
overflow: 'visible'
},
paper: {
background: 'none',
boxShadow: 'none',
overflow: 'hidden'
}
}))
和:
<Dialog
{...backdropProps}
fullWidth
className={classes.root}
...
他們的Styles 檔案有更多的例子。
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/364350.html
上一篇:當一個在Typescript中擴展另一個時如何宣告A或B型別的變數
下一篇:干凈地推斷陣列值的型別
