如何理解react-virtualized AutoSizer的onScroll TypeScript函数签名?
AutoSizer 组件onScroll属性入参类型解释
这是TypeScript语法下的函数类型定义,包含参数解构写法和入参对象的类型约束两部分,具体结构说明如下:
- 首先onScroll仅接收1个对象类型的入参,该对象强制包含3个固定属性:
scrollDirection:string类型,标识当前滚动方向,取值为horizontal(水平滚动)或vertical(垂直滚动)scrollOffset:number类型,滚动条当前的偏移像素值:垂直滚动时为距离容器顶部的偏移,水平滚动时为距离容器左侧的偏移scrollUpdateWasRequested:boolean类型,标识滚动触发来源:值为true时是代码主动调用滚动API触发的滚动,值为false时是用户手动操作(滚轮、拖拽滚动条等)触发的滚动
- 类型声明开头的
{ scrollOffset, scrollUpdateWasRequested }是对象解构语法,属于TS的语法糖:你在实现回调函数时可以按需取出需要的属性,不需要完整接收整个参数对象,示例用法如下:
// 仅用到scrollOffset的场景,不需要声明另外两个属性 const handleScroll = ({ scrollOffset }) => { // 业务逻辑 console.log('当前滚动偏移量', scrollOffset) } // 组件绑定 <AutoSizer onScroll={handleScroll}> {/* 子组件内容 */} </AutoSizer>
内容的提问来源于stack exchange,提问作者carrybit
相关产品推荐
相关产品推荐

