【发布时间】:2021-09-25 15:33:03
【问题描述】:
我正在尝试使用ResponsiveReactGridLayout 呈现仪表板,我在功能组件中的代码如下:
const Home = () => {
const [coins, setCoins] = useState(latestCoins);
const [coin, setCoin] = useState(curCoin);
const canvasRef = useRef(null);
useEffect(() => {
getCoins().then((data) => setCoins(data));
}, []);
return (
<ResponsiveReactGridLayout
onResize={(e) => console.log(e)}
className="layout"
layouts={layouts}
rowHeight={100}
breakpoints={{ lg: 1200, md: 996, sm: 768, xs: 480, xxs: 0 }}
cols={{ lg: 12, md: 10, sm: 6, xs: 4, xxs: 2 }}
>
<div key="candlestick" className="home-card" ref={canvasRef}>
{console.log(canvasRef)}
//Trying to use canvasRef.current.width and height but getting an error: Property 'width' does not exist on type 'never'
<Candlestick coin={coin} width={600} height={400} />
</div>
</ResponsiveReactGridLayout>
);
};
我的 Candlestick 组件确实从 react-stockcharts 返回了一个 ChartCanvas 对象,它需要一个宽度和高度(没有它它不会占用 div 的整个空间)
如何获取 div 的高度和宽度?
我尝试过使用 useRef() 钩子,但它似乎总是将 current 设为 null。
我能得到一些帮助吗?
【问题讨论】:
-
请在描述中添加 UseRef() 代码。很可能你可能会在更新值的反应范围之外使用它
-
@PushpikaWan,我已经更新了。谢谢。
标签: reactjs typescript react-hooks react-grid-layout