मैं जानता हूँ कि स्वीकार किए जाते हैं जवाब बहुत अच्छा है, लेकिन किसी के लिए जो लग रहा है की तरह एक हॉवर आप उपयोग कर सकते हैं की तलाश में है setTimeoutपर mouseoverऔर (setTimeout को संभालने के लिए आइए कहना सूची आईडी की) एक नक्शे में संभाल सहेजें। पर mouseoversetTimeout से संभाल स्पष्ट और नक्शे से हटा
onMouseOver={() => this.onMouseOver(someId)}
onMouseOut={() => this.onMouseOut(someId)
और मानचित्र को इस प्रकार लागू करें:
onMouseOver(listId: string) {
this.setState({
... // whatever
});
const handle = setTimeout(() => {
scrollPreviewToComponentId(listId);
}, 1000); // Replace 1000ms with any time you feel is good enough for your hover action
this.hoverHandleMap[listId] = handle;
}
onMouseOut(listId: string) {
this.setState({
... // whatever
});
const handle = this.hoverHandleMap[listId];
clearTimeout(handle);
delete this.hoverHandleMap[listId];
}
और नक्शा ऐसा है,
hoverHandleMap: { [listId: string]: NodeJS.Timeout } = {};
मैं पसंद करता हूं onMouseOverऔर onMouseOutक्योंकि यह सभी बच्चों के लिए भी लागू होता है HTMLElement। यदि यह आवश्यक नहीं है कि आप उपयोग कर सकते हैं onMouseEnterऔर onMouseLeaveक्रमशः।