>source

내 react/redux 앱에는 구성 요소가 마운트 될 때마다 redux의 상태에서 데이터를 검색하기 위해 호출되는 작업이 있습니다. 내 방식이 작동하지 않습니다

아래는 내가 얻는 오류입니다.

React Hook useEffect has a missing dependency: 'props'. Either include it or remove the dependency array. However, 'props' will change whenanyprop changes, so the preferred fix is to destructure the 'props' object outside of the useEffect call and refer to those specific props inside useEffect react-hooks/exhaustive-deps

내 코드는 다음과 같습니다.

import { getInvoiceData } from "../../actions/tables"
const TableSection = (props) =>{
  useEffect(() => {
    props.getInvoiceData();
  }, []);
  const classes = useStyles();
(...)
TableSection.propTypes = {
  invoiceData: PropTypes.object
};
const mapStateToProps = (state) => ({
  invoiceData: state.tables.invoiceData,
});
export default connect(mapStateToProps, { getInvoiceData })(TableSection);


  • 답변 # 1

    전달하는 의존성 배열 useEffect() 비어 있지만 사용하고 있습니다 props. getInvoiceData() 그것 안에, 그래서 그것은 누락 props . 다음과 같이 추가하십시오 :

     useEffect(() => {
        props.getInvoiceData();
      }, [props]);
    
    

    소품을 해체하는 것이 좋습니다.

    const TableSection = ({invoiceData , getInvoiceData}) =>{
      useEffect(() => {
       getInvoiceData();
      }, [getInvoiceData]);
      
      // Use invoiceData here
      console.log(invoiceData);
    
    

    의존성을 사용하여 useEffect() 다시 발사해야하는지 안다. 너 이후 getInvoiceData 기능입니다.이 경우에는 한 번만 실행됩니다. componentDidMount() .

관련 자료

  • 이전 javascript - discordjs에서 명확한 명령을 내림
  • 다음 java - CVC4에서 유형 매개 변수를 사용하여 사용자 정의 데이터 유형의 인수가없는 생성자 호출