【发布时间】:2021-12-29 11:35:04
【问题描述】:
我想在 react-select 组件的 menuList 中添加一个 onScroll 处理程序,但以下内容不起作用。我怀疑我需要为其中一个孩子设置 onScroll 而不是包含孩子的元素,但我不知道该怎么做。
import React from 'react';
import Select, { components, MenuListProps } from 'react-select';
import {
ColourOption,
colourOptions,
FlavourOption,
GroupedOption,
groupedOptions,
} from './docs/data';
const handleScroll = () =>{
console.log('scrolling')
}
const MenuList = (
props: MenuListProps<ColourOption | FlavourOption, false, GroupedOption>
) => {
return (
<components.MenuList {...props}>
<div onScroll={handleScroll}>
{props.children}
</div>
</components.MenuList>
);
};
export default () => (
<Select<ColourOption | FlavourOption, false, GroupedOption>
defaultValue={colourOptions[1]}
menuIsOpen={true}
options={groupedOptions}
components={{ MenuList }}
/>
);
https://codesandbox.io/s/codesandboxer-example-forked-jr74k?file=/example.tsx:0-721
我也尝试过使用类似的东西
mySelectRef.current.menuListRef.addEventListener("scroll", handleScroll)
但.current 或.current.menuListRef 在命令执行时始终未定义或为空。我尝试使用 React.useEffect 和 setTimeout,但效果不佳。我希望我可以通过设置右侧内部 div 的onScroll 来完成此操作。
【问题讨论】:
标签: reactjs react-select