与useEffect一起使用prop-types,我不知道为什么useEffect无法识别propTypes的属性

时间:2020-10-19 07:49:46

标签: javascript reactjs react-hooks

我正在将分页组件从类重构为函数以使用react-hooks,而useEffect无法读取名为propTypes和defaultProps的变量中名为Items和initialPage的属性。并在浏览器上显示此错误。

TypeError: Cannot read property 'items' of undefined
(anonymous function)
src/components/Pagination.js:27
  24 | 
  25 | useEffect((prevProps) => {
  26
> 27 |   if (JSON.stringify(propTypes.items) !== JSON.stringify(prevProps.items)) {
     | ^  28 |     setPage(propTypes.initialPage);
  29 |   }
  30 | }, []);

这是我的密码

const propTypes = {
  items: PropTypes.array.isRequired,
  onChangePage: PropTypes.func.isRequired,
  initialPage: PropTypes.number,
  pageSize: PropTypes.number,
};
const defaultProps = {
  initialPage: 1,
  pageSize: 5,
};

function Pagination(props) {
  const [pager, setPager] = useState({ pager: {} });
  useEffect(() => {
    if (propTypes.items && propTypes.items.length) {
      setPage(propTypes.initialPage);
    }
  }, []);

  useEffect((prevProps) => {
    if (JSON.stringify(propTypes.items) !== JSON.stringify(prevProps.items)) {
      setPage(propTypes.initialPage);
    }
  }, []);

我一直陷在这个问题中,希望我能从这里得到好的答案或任何反馈。非常感谢!

0 个答案:

没有答案