1

我尝试获取屏幕的 innerWidth 并且我设法做到了,但是当我转到移动视图上的页面时,我首先得到 375,然后转到横向,我得到 667,当返回纵向时,我得到 618。为什么会这样从横向返回时与从另一个页面导航时有什么不同?我做了什么:

    <meta name="viewport" content="width=device-width, initial-scale=1.0">

这就是我获得宽度的方式

    import React, { useState, useEffect } from 'react';

const useWindowWidth = (WrappedComponent) => (props) => {
    const [width, setWidth] = useState(window.innerWidth);
  
    useEffect(() => {
      const handleResize = () => {setWidth(window.innerWidth);}
  
      window.addEventListener('resize', handleResize);
  
      return () => {
        window.removeEventListener('resize', handleResize);
      };
    }, []);
  
    return (    <WrappedComponent {...props} width={width} />
    )
  }

export default useWindowWidth;

我需要 js 中的宽度,因为我必须从 npm 设置 react-pdf 的宽度,并且它应该在组件的 props 中设置。

       let windowWidth = width * 0.9;
   return (
       <Document
        file={url}
        onLoadSuccess={onDocumentLoadSuccess}
        className={classes.pdfFileContainer}
      >
        <Page pageNumber={pageNumber} width={windowWidth} />
      </Document>
);
4

0 回答 0