React 구성 요소의 "잘못된 후크 호출" 오류 해결
React 후크는 구성 요소 상태와 상호 작용하는 강력한 방법을 제공하지만 따라야 할 특정 규칙이 있습니다. 발생할 수 있는 일반적인 오류 중 하나는 "잘못된 후크 호출"입니다. 이는 함수 구성 요소의 본문 외부에서 후크를 호출할 때 발생합니다.
오류 원인:
문제 해결 :
제공된 코드 예제에서 문제는 클래스 구성 요소의 componentWillMount 메서드에서 추적될 수 있습니다. React Hooks는 클래스 구성 요소에서 지원되지 않습니다.
해결책:
이 문제를 해결하고 후크를 사용하려면 구성 요소를 기능적 구성 요소로 변환해야 합니다. 업데이트된 코드는 다음과 같습니다.
import React, { useState, useEffect } from 'react'; import { makeStyles } from '@material-ui/core/styles'; import Table from '@material-ui/core/Table'; import TableBody from '@material-ui/core/TableBody'; import TableCell from '@material-ui/core/TableCell'; import TableHead from '@material-ui/core/TableHead'; import TableRow from '@material-ui/core/TableRow'; import Paper from '@material-ui/core/Paper'; const useStyles = makeStyles(theme => ({ root: { width: '100%', marginTop: theme.spacing(3), overflowX: 'auto' }, table: { minWidth: 650 } })); const Allowance = () => { const [allowances, setAllowances] = useState([]); const classes = useStyles(); useEffect(() => { fetch('http://127.0.0.1:8000/allowances') .then(data => data.json()) .then(data => setAllowances(data)); }, []); 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;
추가 참고 사항:
어떤 경우에는 오래된 버전의 반응 스크립트를 사용하여 문제가 발생할 수도 있습니다. 버전을 최신 릴리스로 업데이트하면 문제가 해결될 가능성이 있습니다.
위 내용은 내 React 구성 요소에서 \"잘못된 후크 호출\" 오류가 발생하는 이유는 무엇이며 어떻게 해결할 수 있나요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!