Ich erhalte die folgende Fehlermeldung, wenn ich versuche, sie makeStyles()
mit einer Komponente mit Lebenszyklusmethoden zu verwenden:
Ungültiger Hook-Aufruf. Hooks können nur innerhalb des Körpers einer Funktionskomponente aufgerufen werden. Dies kann aus einem der folgenden Gründe geschehen:
- Möglicherweise stimmen Versionen von React und des Renderers nicht überein (z. B. React DOM).
- Möglicherweise verstoßen Sie gegen die Hook-Regeln
- Möglicherweise haben Sie mehr als eine Kopie von React in derselben App
Unten finden Sie ein kleines Beispiel für Code, der diesen Fehler verursacht. Andere Beispiele weisen untergeordneten Elementen ebenfalls Klassen zu. Ich kann in der MUI-Dokumentation nichts finden, was andere Verwendungsmöglichkeiten makeStyles
und die Möglichkeit zur Verwendung von Lebenszyklusmethoden zeigt.
import React, { Component } from 'react';
import { Redirect } from 'react-router-dom';
import { Container, makeStyles } from '@material-ui/core';
import LogoButtonCard from '../molecules/Cards/LogoButtonCard';
const useStyles = makeStyles(theme => ({
root: {
display: 'flex',
alignItems: 'center',
justifyContent: 'center',
},
}));
const classes = useStyles();
class Welcome extends Component {
render() {
if (this.props.auth.isAuthenticated()) {
return <Redirect to="/" />;
}
return (
<Container maxWidth={false} className={classes.root}>
<LogoButtonCard
buttonText="Enter"
headerText="Welcome to PlatformX"
buttonAction={this.props.auth.login}
/>
</Container>
);
}
}
export default Welcome;