每当我试图将 makeStyles()
与具有生命周期方法的组件一起使用时,都会得到以下错误:
Invalid hook call. Hooks can only be called inside of the body of a function component. This could happen for one of the following reasons:
- 您可能有不匹配的 React 版本和渲染器(例如 React DOM) - You might have mismatching versions of React and the renderer (such as React DOM)
- 你可能违反了钩子法则
- 在同一个应用程序中,您可能有多个 React 副本
下面是产生此错误的代码的一个小示例。其他示例也将类分配给子项。我在 MUI 的文档中找不到任何说明使用 makeStyles
的其他方法以及使用生命周期方法的内容。
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 ;
}
return (
);
}
}
export default Welcome;