import React, { useState, useEffect, useRef, useMemo } from 'react'; import PropTypes from 'prop-types'; const FixedWidthTable = ({ className, headers, theadOptions = {}, children }) => { const [containerWidth, setContainerWidth] = useState(0); const fixedWidth = useMemo(() => headers.reduce((pre, cur) => cur.isFixed ? cur.width + pre : pre, 0), [headers]); const containerRef = useRef(null); useEffect(() => { const container = containerRef.current; const handleResize = () => { if (!container) return; setContainerWidth(container.offsetWidth); }; const resizeObserver = new ResizeObserver(handleResize); container && resizeObserver.observe(container); return () => { container && resizeObserver.unobserve(container); }; }, []); return (
{header.children} | ); })}
---|