Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/user-interface/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 我尝试在类组件中使用constusestyles_Javascript_Node.js_Reactjs_Material Ui - Fatal编程技术网

Javascript 我尝试在类组件中使用constusestyles

Javascript 我尝试在类组件中使用constusestyles,javascript,node.js,reactjs,material-ui,Javascript,Node.js,Reactjs,Material Ui,现在,我正在使用React框架和Material UI的库执行一个项目 我的模板来自->唱入 我将组件从函数组件更改为类组件以使用this.state。因为我想从键盘上获取值。但我不能 这是错误的 这是我的密码 const useStyles = makeStyles(theme => ({ root: { flexGrow: 1, }, })); class Signin extends Component { constructor(props) {

现在,我正在使用React框架和Material UI的库执行一个项目

我的模板来自->唱入

我将组件从函数组件更改为类组件以使用this.state。因为我想从键盘上获取值。但我不能

这是错误的

这是我的密码

const useStyles = makeStyles(theme => ({
   root: {
      flexGrow: 1,
   },
}));

class Signin extends Component {
   constructor(props) {
       super(props);
       this.state = {
          username: "",
          password: "",
          redirectToReferrer: false,
          message: null
        }
   }
   render() {
      const { redirectToReferrer } = this.state;
      const { classes } = this.props;
      if (redirectToReferrer) return <Redirect to="/routebasic" />;
        return (
          <div className={classes.root}>
    }}
    Signin.propTypes = {
      classes: PropTypes.object.isRequired,
    };
    export default [connect(null, { ActSignin })(Signin),makeStyles(useStyles)(Signin)];

还是错误。

是的,它会出错。有很多非常简单的方法可以让钩子与类一起工作,但是您不需要使用类来获得状态。只使用一个函数组件要比尝试破解反应容易得多

我将组件从函数组件更改为类组件以使用this.state。因为我想从键盘上获取值

作为一个例子,我在这里猜测,因为我不知道上下文,我将对象拆分,而不是将其保留为单个值:

const Signin = ({ classes }) => {
   const [username, setUsername] = React.useState("kmitlclinic01");
   const [password, setPassword] = React.useState("54788");
   const [redirectToReferrer, setRedirectToReferrer] = React.useState(false);
   const [message, setMessage] = React.useState("kmitlclinic01");

   if (redirectToReferrer) return <Redirect to="/routebasic" />;
   return (
     <div className={classes.root}>
       {/* I assume some stuff goes here? */}
     </div>
   );
}

export default [connect(null, { ActSignin })(Signin),makeStyles(useStyles)(Signin)];
const Signin = ({ classes }) => {
   const [username, setUsername] = React.useState("kmitlclinic01");
   const [password, setPassword] = React.useState("54788");
   const [redirectToReferrer, setRedirectToReferrer] = React.useState(false);
   const [message, setMessage] = React.useState("kmitlclinic01");

   if (redirectToReferrer) return <Redirect to="/routebasic" />;
   return (
     <div className={classes.root}>
       {/* I assume some stuff goes here? */}
     </div>
   );
}

export default [connect(null, { ActSignin })(Signin),makeStyles(useStyles)(Signin)];