所以我尝试按日期对表格进行分类,标题为(今天,昨天,上周,...),我试图根据视口中的当前表格使它们具有粘性。我尝试使用react-sticky
库,特别是the stacked example
,因为它似乎是我正在寻找的效果,但我无法重新创建它。
请问我是不是错过了图书馆的使用情况。
也欢迎没有库的解决方案
我一直在努力
export default function CustomizedTables() {
const classes = useStyles();
return (
<StickyContainer>
<Sticky topOffset={20}>
{(props) => (
<div className={reduceCSS.tableHistoryTitle_day}>Today</div>
)}
</Sticky>
<TableContainer component={Paper} elevation={0}>
<Table className={classes.table} aria-label="customized table">
<TableBody>
{rows.map((row) => (
<StyledTableRow key={row.name} elevation={0}>
<StyledTableCell align="left" className={classes.iconCell}>
<AssignmentReturnedSharpIcon className={classes.inputIcon} />
</StyledTableCell>
<StyledTableCell align="left">{row.calories}</StyledTableCell>
<StyledTableCell component="th" scope="row">
{row.name}
</StyledTableCell>
<StyledTableCell align="right">{row.fat}</StyledTableCell>
<StyledTableCell align="right">{row.carbs}</StyledTableCell>
<StyledTableCell align="right">{row.protein}</StyledTableCell>
</StyledTableRow>
))}
</TableBody>
</Table>
</TableContainer>
</StickyContainer>
);
}
5条答案
按热度按时间yqhsw0fo1#
您可以在
th
中使用position: sticky
和top: 0
。https://codepen.io/ipetriniith/pen/JjGeOKQxam8gpfp2#
按照下面列出的步骤,对于***ReactJs***上的粘性头,
Header.js
Header.css -自定义样式(为您的标题)
注意!
已通过链接编译:https://codesandbox.io/s/sticky-header-dyews?file=/src/App.js
bqucvtff3#
在react中,你需要通过调用
useState
函数来设置类。您可以在
useEffect
中为此设置监听器,该监听器在组件呈现上运行一次。Sandbox:https://codesandbox.io/s/sticky-header-forked-ybo6j9
大部分代码都引用了这个答案:https://stackoverflow.com/a/69944800/271932(有正确的CSS但没有react代码)
5hcedyr04#
在阅读了大量实现这一点的js代码之后,我实现了这样的...
daolsyd05#
position: sticky
很酷。Its compatibility is also ok
只需注意父元素的高度,大多数情况下,您可能需要将其与
React.Fragment
配合使用。