Мое приложение работало хорошо, пока я не обновил свои материалы пользовательского интерфейса и реагирует пакетов, и внезапно я начал получать следующую ошибку
src/App.tsx
(156,45): Type '{}' does not satisfy the constraint ComponentType<never>.
Type '{}' is not assignable to type StatelessComponent<never>.
Строка 156Мой App.tsx, как я показываю ниже:
export default (withRoot(withStyles(styles)<{}>(connect(mapStateToProps)(withWidth()(App)))));
Это версия установленных мной пакетов:
"@material-ui/core": "^3.2.1",
"@material-ui/icons": "^3.0.1",
"react": "16.5.2",
"react-dom": "16.5.2",
Я думаю, что проблема с моим пользовательским withRoot
функции, или также withStyle
, но я не знаю, какой тип ожидает сейчас и почему не выдает ошибку до обновления библиотек.Я уже удалил папку node_modules и переустановил все пакеты, чтобы проверить, возможно, я что-то пропустил с обновлением
. Вот как я определяю свои типы Props
и State
:
const styles = (theme: Theme) => createStyles({...});
export namespace App {
export interface Props extends RouteComponentProps<void>, WithStyles<typeof styles>, WithWidth {
layout: Layout;
history: any;
}
export interface State {
mobileOpen: boolean;
}
}
class App extends React.Component<App.Props, App.State> {
...
}
Это withRoot
функция:
function withRoot(Component: React.ComponentType) {
function WithRoot() {
// MuiThemeProvider makes the theme available down the React tree
// thanks to React context.
return (
<MuiThemeProvider theme={theme}>
{/* Reboot kickstart an elegant, consistent, and simple baseline to build upon. */}
<CssBaseline />
<Component {...props} />
</MuiThemeProvider>
);
}
return WithRoot;
}
Может быть, это может помочь воспроизвести проблему, я начал свой проект, используя большинство идей этого GitHub проекта.