Invalid hook call. Hooks can only be called inside of the body of a function component

后端 未结 14 1435
滥情空心
滥情空心 2020-12-03 09:25

I am new to React and Now I would like to show some record in the table and now I got this error. Help me, please.

Invalid hook call. Hooks can only b

相关标签:
14条回答
  • 2020-12-03 10:16

    If all the above doesn't work, especially if having big size dependency (like my case), both building and loading were taking a minimum of 15 seconds, so it seems the delay gave a false message "Invalid hook call." So what you can do is give some time to ensure the build is completed before testing.

    0 讨论(0)
  • 2020-12-03 10:17

    Cause you Only Call Hooks from React Functions. See more here https://reactjs.org/docs/hooks-rules.html#only-call-hooks-from-react-functions. Just convert Allowance class component to functional component. The demo working here https://codesandbox.io/s/amazing-poitras-k2fuf

    const Allowance = () => {
      const [allowances, setAllowances] = useState([]);
    
      useEffect(() => {
        fetch("http://127.0.0.1:8000/allowances")
          .then(data => {
            return data.json();
          })
          .then(data => {
            setAllowances(data);
          })
          .catch(err => {
            console.log(123123);
          });
      }, []);
    
      const classes = useStyles();
      return (
        <Paper className={classes.root}>
          <Table className={classes.table}>
            <TableHead>
              <TableRow>
                <TableCell>Allow ID</TableCell>
                <TableCell align="right">Description</TableCell>
                <TableCell align="right">Allow Amount</TableCell>
                <TableCell align="right">AllowType</TableCell>
              </TableRow>
            </TableHead>
            <TableBody>
              {allowances.map(row => (
                <TableRow key={row.id}>
                  <TableCell component="th" scope="row">
                    {row.AllowID}
                  </TableCell>
                  <TableCell align="right">{row.AllowDesc}</TableCell>
                  <TableCell align="right">{row.AllowAmt}</TableCell>
                  <TableCell align="right">{row.AllowType}</TableCell>
                </TableRow>
              ))}
            </TableBody>
          </Table>
        </Paper>
      );
    };
    
    export default Allowance;
    
    0 讨论(0)
提交回复
热议问题